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

上一篇: python: TypeError: can't write str to text stream

下一篇: file (ie images) processing