我有一个点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]})
答案 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()
...