在Python保存文件时添加BOM(Unicode签名)

37 投票
10 回答
34366 浏览
提问于 2025-04-16 13:03

我想知道在用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')

撰写回答