【发布时间】:2011-03-05 08:31:18
【问题描述】:
如何在 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。
【问题讨论】:
-
for line in file_old: file_new.write(line)的内存效率要高得多。为什么你不能使用已经做到这一点的众多软件中的任何一个? -
文本编辑器必须打开文件才能“另存为”,而且文件很大。其他软件是共享软件,或者很难找到。此外,我只是在学习python。逐行保存可能更有效,但也更复杂。
-
如果文件非常大,那可能更有理由逐行转换它——尽管它很“复杂”。
-
这也取决于脚本执行的频率。在我的情况下,文件为 100 mb,每月转换一次
-
@JohnMachin 实际上在这里得到了正确答案。
标签: python