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)。

我该怎么解决这个问题?我在哪里可以找到问题?

谢谢

Python在文件开头添加Unicode字符

似乎文件系统中的文件正在使用ISO-8859-1编码,而您在每个文件的开头添加UT8 BOM标记。

在你的代码完成它的工作后,你会得到一个文件,在开头有UTF-8 BOM + ISO-8859-1元。

在使用notepad++(或任何其他编辑器)修改之前,我会检查输入文件的编码,以查看我描述的场景是否有效。如果是,则需要使用不同的编码读取输入文件,以避免元数据:

with open(fname,  "r",  "ISO-8859-1") as f:
    ...