python - 在Python中编写csv

标签 python csv

我正在处理一个项目,我正在尝试将一个表移动到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)

关于python - 在Python中编写csv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22156113/

相关文章:

python - 如何将 tablib 数据集保存为 csv 文件?

python - 多次尝试后无法访问推特

java - 通过java输出CSV

python - 使用python将目录与列分开

python - 从不一致分隔的 csv 文件返回特定值

python - 使用 matplotlib 在 x 轴上绘制时间

python - 如何在 python 中更快地进行搜索?

python - 如何正确记录类的静态变量?

csv - 将 CSV 文件导入 Hadoop

sql - 将(非 CSV)文本数据导入 PostgreSQL,以空格和一个大写字母分隔