1. print 输出至终端
可以正常输出字符串,但如果是直接输出字符串列表就不行
print '这是中文'
# 这是中文
print ['这是中文']
# ['\xe8\xbf\x99\xe6\x98\xaf\xe4\xb8\xad\xe6\x96\x87']
2. 输出至文件
含中文的字符串类型是 unicode 的,直接使用 f.write(my_str) 会报错。
with open(out_path, 'w') as f:
for line in line_list:
f.write(line)
f.write('\n')
Traceback (most recent call last):
File "<stdin>", line 4, in <module>
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-12: ordinal not in range(128)
亲测可用的方法一是使用 codecs ,二是将 unicode 编码
import codecs
output = codecs.open(out_path, 'w', 'utf-8')
for line in line_list:
output.write(line)
output.write('\n')
with open(out_path, 'w') as f:
for line inline_list:
f.write(line.encode('utf-8') + '\n')