【发布时间】:2011-11-14 10:29:35
【问题描述】:
我有一个要写入文件的 unicode 字符串。
在 Python 2 中我可以编写:
open('filename', 'w').write(s.encode('utf-8'))
但这对于 Python 3 来说是失败的。显然,s.encode() 返回了一些“字节”类型的东西,而 write() 函数不接受:
TypeError: must be str, not bytes
有人知道如何将上述代码移植到 Python 3 吗?
编辑:
感谢所有提出使用二进制模式的人!不幸的是,这会导致 \n 字符出现问题。有什么方法可以实现与 Python 2 相同的结果(即在 UTF-8 中编码非 ANSI 字符,同时保持操作系统特定的 \n 再现)?
谢谢!
【问题讨论】:
标签: unicode python-3.x