csv模块python3.1

csv模块python3.1,python,csv,python-3.x,Python,Csv,Python 3.x,我在Python2.x中使用了以下内容: import csv f = open('test.csv', 'wb') writer = csv.writer(f) writer.writerow((fpath, md5sum, size)) # <str>, <str>, <int> 当然,将数据写入以非二进制模式打开的文件中可以做到这一点,但我喜欢Py3中处理Unicode的方式,希望在写入文件之前对数据进行专门编码,并在读取文件时对其进行解码 我该如何解

我在Python2.x中使用了以下内容:

import csv
f = open('test.csv', 'wb')
writer = csv.writer(f)
writer.writerow((fpath, md5sum, size)) # <str>, <str>, <int>
当然,将数据写入以非二进制模式打开的文件中可以做到这一点,但我喜欢Py3中处理Unicode的方式,希望在写入文件之前对数据进行专门编码,并在读取文件时对其进行解码


我该如何解决这个问题?

那么,您到底在哪里对数据进行解码/编码,以及它与二进制模式的关系如何?unicode/字节分割的要点当然是您不必自己处理编码/解码?如果您想使用不同于默认的编解码器,请参阅Ignacio的答案。您能否解释一下“不必自己处理编码”这一点?unicode/字节分割与此有什么关系?那么,您究竟在哪里对数据进行解码/编码,以及它与二进制模式的关系如何?unicode/字节分割的要点当然是您不必自己处理编码/解码?如果您想使用不同于默认的编解码器,请参阅Ignacio的答案。您能否解释一下“不必自己处理编码”这一点?unicode/字节分割与此有什么关系?此答案适用于非Windows系统。为了便于移植,所有3.X csv文件都应使用
newline=''
打开,无论是读还是写。书面案例尚未形成文件;出现错误报告。。。对于非Windows系统,这个答案是正确的。为了便于移植,所有3.X csv文件都应使用
newline=''
打开,无论是读还是写。书面案例尚未形成文件;出现错误报告。。。
f = open('test.csv', 'w', encoding='utf-8', newline='')
f = open('test.csv', 'w', encoding='utf-8', newline='')