有一个简单的脚本在我的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']
Run Code Online (Sandbox Code Playgroud)
收到此错误消息: TypeError: must be bytes or buffer, not str
我应该做些什么改变?
谢谢.
Mar*_*nen 16
在Python 2.X中,需要使用'b'打开csvfile,因为csv模块执行自己的行终止处理.
在Python 3.X中,csv模块仍然执行自己的行终止处理,但仍需要知道Unicode字符串的编码.打开csv文件进行写入的正确方法是:
outputfile=open("out.csv",'w',encoding='utf8',newline='')
Run Code Online (Sandbox Code Playgroud)
encoding可以是你需要的任何东西,但newline=''抑制文本模式换行处理.在Windows上,如果不这样做,将写入\ r \n \n \n文件行结尾而不是正确的\ r \n.这仅在3.X csv.reader文档中提到,但csv.writer也需要它.
| 归档时间: |
|
| 查看次数: |
7869 次 |
| 最近记录: |