python写入csv文件

时间:2015-04-20 12:54:48

标签: python csv writing

我有一个点Q(元组),每次调用一个函数时都会创建它。如何将新点Q写入csv文件,使第一列为x坐标,第二列为y坐标,第三列为z坐标,不覆盖文件?谢谢

with open('points.csv', 'w') as csvfile:
    fieldnames = ['x', 'y','z']
    writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
    writer.writeheader()
    for val in q:
        writer.writerow({'x':q[0] , 'y': q[1], 'z': q[2]})

1 个答案:

答案 0 :(得分:0)

您必须更改打开文件的方式 - 模式“w”始终代表创建/截断文件。只需使用“a”(代表“追加”):

with open('points.csv', 'a') as csvfile:
     ...

当然,如果文件已经存在,那么每次重新打开时都不想重新编写标题 - 因此,您可以在打开文件之前验证该文件是否存在:

import os
file_exists = os.path.exists("points.csv")
with ... as csvfile:
    writer = ...
    if not file_exists:
        writer.writeheader()
    ...