我在Python2.x中使用以下内容;
import csv
f = open('test.csv', 'wb')
writer = csv.writer(f)
writer.writerow((fpath, md5sum, size)) # <str>, <str>, <int>
这没有任何问题。但是,当我在Python3中运行它时,我得到一个TypeError。
writer.writerow((fpath, md5sum, size))
TypeError: write() argument 1 must be bytes or buffer, not str
当然,将数据写入以非二进制模式打开的文件可以解决这个问题,但我喜欢在Py3中处理Unicode的方式,并且希望在写入文件之前对数据进行特定编码并在解码时对其进行解码从中读取。
如何解决这个问题?
答案 0 :(得分:6)
f = open('test.csv', 'w', encoding='utf-8', newline='')