如何在Python / Django中将西里尔字母写入文件

时间:2014-11-02 13:58:04

标签: python django

我有一个包含大量文字的大表格。例如,它可能包含引号中的单词,如"Программа"。当我将其提交到服务器并尝试将提交的内容写入文件时,我收到错误。如果我用拉丁字母替换所有西里尔字母,那么一切正常。问题显然在服务器端。我想,如果我新的如何处理像"Текст на кириллице"这样的字符串,我可以解决问题。

1 个答案:

答案 0 :(得分:3)

当您写入文件unicode字符串时,必须先对其进行编码。

让我们尝试以下方法:

# -*- coding: utf-8 -*-
text = u"Текст на кириллице"

with open('outfile.txt', 'w') as fw:
    fw.write(text)

此代码将引发异常

UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-4: ordinal not in range(128)

所以,只需对文本进行编码即可。最受欢迎的编码之一是' utf8':

# -*- coding: utf-8 -*-
text = u"Текст на кириллице"

with open('outfile.txt', 'w') as fw:
    fw.write(text.encode('utf8'))

您必须记住用于编码文本的编码,以便以后能够阅读。 要从文件中读取文本,请使用写入时使用的相同编码对其进行解码:

with open('outfile.txt') as f:
    text = f.read()

print text.decode('utf8')
相关问题