簡體   English   中英

Python在文件開頭添加Unicode字符

[英]Python add Unicode characters at the start of a file

我使用腳本來更新.NET項目的每個AssemblyVersion.cs文件的版本。 它始終可以完美運行,但是由於格式化了我的PC,因此在每個已編輯的.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)。

我可以嘗試解決什么問題? 我在哪里可以找到問題?

謝謝

您在每個文件的開頭添加UT8 BOM標記時,文件系統中的文件似乎正在使用ISO-8859-1編碼。

代碼完成工作后,您將在開頭獲得帶有UTF-8 BOM + ISO-8859-1元的文件。

在使用Notepad ++(或任何其他編輯器)進行修改之前,我將檢查輸入文件的編碼,以查看我描述的方案是否有效。 如果是這樣,您將需要使用不同的編碼來讀取輸入文件以避免元數據:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM