Python在文件开头添加Unicode字符
本文关键字:Unicode 字符 添加 开头 文件 Python | 更新日期: 2023-09-27 18:13:25
我使用一个脚本来更新. net项目的每个AssemblyVersion.cs文件的版本。它总是工作得很完美,但由于格式我的电脑,它在每个。cs文件编辑的开始添加unicode字符。这样的:
using System.Reflection;
using System.Runtime.InteropServices;
using System.Security;
我用下面的代码打开一个文件:
with open(fname, "r") as f:
out_fname = fname + ".tmp"
out = codecs.open(out_fname, "w", encoding='utf-8')
textInFile=""
for line in f:
textInFile += (re.sub(pat, s_after,line))
out.write(u''uFEFF')
out.write(textInFile)
out.close()
os.remove(fname)
os.rename(out_fname, fname)
我也尝试过,如这里所写,使用io
而不是codecs
,但没有改变。
在其他队友的pc上,它可以使用相同的配置(Win10和IronPython 2.7)。
我该怎么解决这个问题?我在哪里可以找到问题?
谢谢
似乎文件系统中的文件正在使用ISO-8859-1编码,而您在每个文件的开头添加UT8 BOM标记。
在你的代码完成它的工作后,你会得到一个文件,在开头有UTF-8 BOM + ISO-8859-1元。
在使用notepad++(或任何其他编辑器)修改之前,我会检查输入文件的编码,以查看我描述的场景是否有效。如果是,则需要使用不同的编码读取输入文件,以避免元数据:
with open(fname, "r", "ISO-8859-1") as f:
...