[英]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.