Python2在写入文件的时候经常会出现因字符转码错误而不能正常运行的问题,很多教程用到的解决办法是重载Python默认编码:

import sys
reload(sys)
sys.setdefaultencoding('utf8')

实际上这是一种非常“激进”的解决办法,会产生很多说不清的后遗症。

如果只是因为需要写入文件而发生这种错误,可以尝试使用codecs模块,会更容易。

一般的写入文件都是像这样:

f = open('file', 'w')
f.write('something')
f.close()

使用codecs后的改动非常小:

import codecs

f = codecs.open('file', 'w', 'utf-8')
f.write('something')
f.close()

即只是文件打开方式上的变化。