python:TypeError:无法将str写入文本流
我必须在这里做一些明显错误的事情。 但它是什么,我该如何解决?
Python 2.6.5 (r265:79096, Mar 19 2010, 21:48:26) [MSC v.1500 32 bit (Intel)] on
win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import io
>>> f1 = io.open('test.txt','w')
>>> f1.write('bingo')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "c:applpython2.6.5libio.py", line 1500, in write
s.__class__.__name__)
TypeError: can't write str to text stream
编辑 :在我真正的应用程序中,我不会有一个常量字符串,我会有一个常规字符串...如果unicode是问题,我该如何转换为io.open需要?
io
模块是一个相当新的python模块(在Python 2.6中引入),使得使用unicode文件更容易。 其文档位于:http://docs.python.org/library/io.html
如果你只是想写字节(Python 2的“str”类型)而不是文本(Python 2的“unicode”类型),那么我建议你跳过io
模块,并使用内置的“open”函数,它给出了一个处理字节的文件对象:
>>> f1 = open('test.txt','w')
或者,在模式字符串中使用'b'以二进制模式打开文件:
>>> f1 = io.open('test.txt','wb')
有关详细信息,请阅读io模块的文档:http://docs.python.org/library/io.html
尝试:
>>> f1.write(u'bingo') # u specifies unicode
参考
你有没有尝试写一个Unicode字符串,而不是一个str
? 也就是说,
fq.write(u"bingo")
我在Mac OS X上,但是当我试图写一个str
,我得到了错误
TypeError:必须是unicode,而不是str
尽管如此,编写一个Unicode字符串仍然有效
链接地址: http://www.djcxy.com/p/8567.html