问题

文件输出到文件有时候需要进行编码的转换,不然可能会输出乱码。
python3中可以使用

1
open(filename,mode=’w’,encoding=’utf-8′)

进行对编码进行转换。python2中并不支持该方法。

解决方法

方法一:

1
2
3
4
with open('./test.txt', 'w') as f:
f.write('测试\n')
f.write('测试\n'.decode('utf-8').encode('gb2312'))
f.write(u'测试\n'.encode('gb2312'))

方法二:
使用内置模块codecs模块

1
2
3
4
import codecs

with codecs.open('./test.txt', 'w', encoding='utf-8') as f:
f.write(u'测试')

这样就可以像python3进行使用类似

1
open(filename,mode=’w’,encoding=’utf-8′)

的形式了