如何在Python中向csv文件添加标头?

时间:2013-04-09 16:17:06

标签: python csv

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

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

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

    csv = csv.DictWriter(open(directory +'/csv.csv', 'wt'), fieldnames = ["stuff1", "stuff2", "stuff3"], delimiter = ';')
    csv.writeheader(["stuff1", "stuff2", "stuff3"])
    
  3. 我得到了“2个参数而不是1个”错误,我真的不知道为什么。

    有什么建议吗?

2 个答案:

答案 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