得到了一个简单的脚本,可以在我的 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(使用前将#替换为@)