我尝试了很多解决方案来为我的csv文件添加标题,但没有任何工作正常。他们在这里:
我使用了writerow方法,但我的数据覆盖了第一行。
我使用了DictWriter方法,但我不知道如何正确填充它。这是我的代码:
csv = csv.DictWriter(open(directory +'/csv.csv', 'wt'), fieldnames = ["stuff1", "stuff2", "stuff3"], delimiter = ';')
csv.writeheader(["stuff1", "stuff2", "stuff3"])
我得到了“2个参数而不是1个”错误,我真的不知道为什么。
有什么建议吗?
答案 0 :(得分:21)
您需要做的就是不带参数调用DictWriter.writeheader()
:
with open(os.path.join(directory, 'csv.csv'), 'wb') as csvfile:
writer = csv.DictWriter(csvfile, fieldnames = ["stuff1", "stuff2", "stuff3"], delimiter = ';')
writer.writeheader()
您已经告诉DictWriter()
您的标题是什么。
答案 1 :(得分:2)
我在编写CSV文件时遇到了类似的问题。 我必须阅读csv文件并修改其中的一些字段。 要在CSV文件中写入标题,我使用了以下代码:
reader = csv.DictReader(open(infile))
headers = reader.fieldnames
with open('ChartData.csv', 'wb') as outcsv:
writer1 = csv.writer(outcsv)
writer1.writerow(headers)
当您编写数据行时,您可以按以下方式使用DictWriter
writer = csv.DictWriter(open("ChartData.csv", 'a' ), headers)
在上面的代码中"" 代表追加。
总之 - >在将标题写入同一文件后,将 a 追加数据用于csv