在写入文件之前,我是否必须编码unicode变量?

时间:2017-08-17 03:51:29

标签: python python-unicode

我读了" Unicdoe Pain"文章前几天。我保留了" Unicode Sandwich"心里。 enter image description here

现在我必须处理一些中文并且我有一个列表

chinese = [u'中文', u'你好']

在写入文件之前,我是否需要进行编码?

add_line_break = [word + u'\n' for word in chinese]
encoded_chinese = [word.encode('utf-8') for word in add_line_break]
with open('filename', 'wb') as f:
    f.writelines(encoded_chinese)

不知怎的,我在python2中发现了。我可以这样做:

chinese = ['中文', '你好']
with open('filename', 'wb') as f:
    f.writelines(chinese)

没有任何unicode问题。 :d

2 个答案:

答案 0 :(得分:1)

您不必这样做,您可以使用iocodecs打开带编码的文件。

import io
with io.open('file.txt', 'w', encoding='utf-8') as f:
    f.write(u'你好')

codecs.open具有相同的语法。

答案 1 :(得分:0)

在python3;

with open('file.txt, 'w', encoding='utf-8') as f:
    f.write('你好')

会做得很好。