在Python保存文件时添加BOM(Unicode签名)
我想知道在用Python保存文件时,怎么添加BOM(Unicode签名):
file_old = open('old.txt', mode='r', encoding='utf-8')
file_new = open('new.txt', mode='w', encoding='utf-16-le')
file_new.write(file_old.read())
我需要把文件转换成utf-16-le + BOM
格式。现在这个脚本运行得很好,只是没有BOM。
10 个回答
37
只需选择带有BOM的编码方式:
with codecs.open('outputfile.csv', 'w', 'utf-8-sig') as f:
f.write('a,é')
(在Python 3中,你可以省略codecs.
)
41
最好使用'codecs'模块中的常量。
import codecs
f.write(codecs.BOM_UTF16_LE)
46
直接在文件的开头写上这个:
file_new.write('\ufeff')