12

我尝试了许多解决方案来向我的 csv 文件添加标题,但没有任何工作正常。他们来了 :

  1. 我使用了 writerow 方法,但我的数据覆盖了第一行。

  2. 我使用了 DictWriter 方法,但我不知道如何正确填充它。这是我的代码:

    csv = csv.DictWriter(open(directory +'/csv.csv', 'wt'), fieldnames = ["stuff1", "stuff2", "stuff3"], delimiter = ';')
    csv.writeheader(["stuff1", "stuff2", "stuff3"])
    

我收到“2 个参数而不是一个”错误,我真的不知道为什么。

有什么建议吗?

4

2 回答 2

25

您需要做的就是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()你的标题是什么。

于 2013-04-09T16:18:52.240 回答
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”代表附加

总之->在将标头写入同一文件后,使用a将数据附加到 csv

于 2016-06-01T14:35:58.403 回答