如何将Unicode文本写入Python文件对象

时间:2013-06-04 16:55:43

标签: python string python-2.7 unicode

简单地说,以下代码:

f.write(u'Río Negro')

引发以下错误:

UnicodeEncodeError: 'ascii' codec can't encode character u'\xed' in position 1: ordinal not in range(128)

我该怎么办? 我正在使用Python 2.7.3。

2 个答案:

答案 0 :(得分:5)

使用open模块中的codecs将无需您手动编码:

import codecs

with codecs.open('file.txt', 'w', encoding='utf-8') as f:
    f.write(u'Río Negro')

在Python 3中,此功能内置于the standard open function

with open('file.txt', 'w', encoding='utf-8') as f:
    f.write(u'Río Negro')

答案 1 :(得分:4)

您需要对字符串进行编码。试试这个:

f.write(u'Río Negro'.encode('utf-8'))