4

我正在尝试将模块的输出保存到 CSV 文件,当我运行以下代码时出现错误,该代码是模块的一部分:

base_keys = ['path', 'rDATE', 'cDate', 'cik', 'risk', 'word_count']
outFile = open('c:\\Users\\ahn_133\\Desktop\\Python Project\\MinkAhn_completed2.csv','wb')
dWriter = csv.DictWriter(outFile, fieldnames=base_keys)
dWriter.writerow(headerDict)

这是错误消息(base_keys 是标题。)

return self.writer.writerow(self._dict_to_list(rowdict))
TypeError: 'str' does not support the buffer interface

我什至不明白错误消息是关于什么的。我使用 Python 3.3 和 Windows 7。

谢谢你的时间。

4

1 回答 1

6

简单地说,以二进制模式打开文件以写入 csv 数据在 Python 3 中不起作用。您想要以文本模式打开并使用默认编码或自己指定一个,即您的代码应编写为:

import csv
k = ['hi']
out = open('bleh.csv', 'w', newline='', encoding='utf8') # mode could be 'wt' for extra-clarity
writer = csv.DictWriter(out, k)
writer.writerow({'hi': 'hey'})

现在,由于一个错误,您还需要指定newline=''何时打开此文件以写入 CSV 输出。

于 2012-12-09T18:20:39.140 回答