Python 3.1.3 Win 7:csv writerow 错误“必须是字节或缓冲区,而不是 str”

2023-12-01

得到了一个简单的脚本,可以在我的 Win xp 机器上的 Python 2.7.1 下完美运行。 现在有了一台带有 python 3.1.3 的 win 7 机器。

代码是:

owriter.writerow(dtime[1][1])

dtime[1][1]=['30-Aug-10 16:00:00', '2.5', '15']

收到此错误消息:TypeError: must be bytes or buffer, not str

我应该做出哪些改变?

thanks.


在 Python 2.X 中,它是required使用“b”打开 csv 文件,因为 csv 模块有自己的行终止处理。

在 Python 3.X 中,csv 模块仍然执行自己的行终止处理,但仍然需要知道 Unicode 字符串的编码。打开 csv 文件进行写入的正确方法是:

outputfile=open("out.csv",'w',encoding='utf8',newline='')

encoding可以是你需要的任何东西,但是newline=''抑制文本模式换行符处理。在 Windows 上,如果不这样做,将会写入 \r\r\n 文件行结尾,而不是正确的 \r\n。这个在3.X里有提到csv.reader仅文档,但是csv.writer也需要它。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python 3.1.3 Win 7:csv writerow 错误“必须是字节或缓冲区,而不是 str” 的相关文章

随机推荐