我有一个项目,我正在研究我试图在python中将一个表移动到另一个表,如果可能的话,我需要它读取两个文件并将它们写入sample_FACTS_bronto_import_add.csv中的特定位置。这是我到目前为止的代码
import csv
with open('Franchise_Name_Scrub_List.csv', 'rb') as csvfile:
spamreader = csv.reader(csvfile, delimiter=' ', quotechar='|')
for row in spamreader:
print ', '.join(row)
with open('sample_FACTS_bronto_import_add.csv', 'wb') as csvfile:
addwriter = csv.writer(csvfile, delimiter=' ',
quotechar='|', quoting=csv.QUOTE_MINIMAL)
addwriter.writerow(row)
要追加,您需要使用追加模式 ( a
) 打开文件 。否则,使用写入模式 ( w
) 打开文件会截断文件。
简单地复制文件内容不需要您使用csv
模块。只需使用file.writelines
with open('Franchise_Name_Scrub_List.csv', 'rb') as f1,
open('sample_FACTS_bronto_import_add.csv', 'ab') as f2:
f2.writelines(f1)
上面的代码假定现有文件sample_FACTS_bronto_import_add.csv
以换行符结尾。如果不能保证,则需要检查它;如果有任何内容,但最后一行不以您需要添加一个结尾。
import os
need_newline = False
try:
with open('sample_FACTS_bronto_import_add.csv', 'rb') as f:
f.seek(0, 2)
if f.tell() > 0:
f.seek(-1, 1)
need_newline = f.read(1) != b'n'
except IOError:
pass
with open('Franchise_Name_Scrub_List.csv', 'rb') as f1,
open('sample_FACTS_bronto_import_add.csv', 'ab') as f2:
if need_newline:
f2.write(os.linesep.encode())
f2.writelines(f1)