我正在使用 DictReader 和 DictWriter 处理 csv 文件。
我尝试根据此处找到的以下代码工作:
import csv
fieldnames = ['Node', 'ID', 'Test Description', 'file-name',
'module', 'view', 'path1','path2'] # defines order in output file
with open('testdata.txt', 'rb') as csvinput:
with open('testdata2.txt', 'wb') as csvoutput:
csvwriter = csv.DictWriter(csvoutput, fieldnames, delimiter=',')
csvwriter.writeheader()
nodecount = 0
for row in csv.DictReader(csvinput):
nodecount +=1
row['Node'] = 'node %s' % nodecount # add 'Node' entry to row data
csvwriter.writerow(row)
我正在使用 python 3.2,我收到以下错误:
File "/usr/lib/python3.2/csv.py", line 153, in writerow
return self.writer.writerow(self._dict_to_list(rowdict))
TypeError: 'str' does not support the buffer interface
我读到这个错误可能是由于“如果你使用 Python3x 则字符串与 Python 2.x 的类型不同,你必须将其转换为字节(对其进行编码)”。
但是在这里,文件已经使用'b'参数打开(因此作为二进制文件)对吗?