スクリプトを使用して、.NETプロジェクトの各AssemblyVersion.csファイルのバージョンを更新します。それはいつも完璧に動作しましたが、私のPCのフォーマット以来、編集された各.csファイルの先頭にユニコード文字が追加されます。 io
の代わりcodecs
を、使用するために、hereを書きましたが、何も変更されていないとして、Pythonはファイルの先頭にUnicode文字を追加します。
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)
私も試してみた:次のように:
using System.Reflection;
using System.Runtime.InteropServices;
using System.Security;
私は、ファイルを開くには、このコードを使用します。
他のチームメイトのPCでは、同じ設定(Win10およびIronPython 2.7)で動作します。
この問題を解決するにはどうすればよいですか?どこで問題を探すことができますか?
おかげ
申し訳ありませんが、私は遅刻場合。ただし、処理されるファイルのエンコーディングはUTF-8 BOMです(具体的には、これらのファイルは.NETプロジェクトのAssemblyInfo.csです)。私はまたあなたが指定したように "ISO-8859-1"を読み書きメソッドに追加しようとしましたが、動作しません。 – Krusty
処理しているファイルがUTF-8 BOMの場合は、通常の 'utf-8'ではなく 'utf-8-sig'エンコーディングを使用する必要があります。たぶんそれは問題です。通常のUTF-8ファイルのように読んでいるので、BOMマーカーは、手作業で書いたBOMを持つファイルの先頭に読み込まれ、追加されます。 – n3m4nja
この方法で試しましたが、まだ動作しません。 f: out_fname = fname + ".tmp"out = codecs.open(out_fname、 " w "、encoding = 'utf-8-sig')' 他の提案はありますか? – Krusty