스크립트를 사용하여 .NET 프로젝트의 각 AssemblyVersion.cs 파일의 버전을 업데이트합니다. 그것은 항상 완벽하게 작동했지만, PC 포맷 이후로, 편집 된 각 .cs 파일의 시작 부분에 유니 코드 문자가 추가됩니다. io
대신 codecs
을 사용하는, here을 쓴 아무것도 변경되지로,Python은 파일 시작 부분에 유니 코드 문자를 추가합니다.
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'인코딩을 사용해야합니다. BOM 표식이 수동으로 작성한 BOM이있는 파일의 시작 부분에 추가되고 추가되는 일반 UTF-8 파일과 같이 읽으므로 문제 일 수 있습니다. – n3m4nja
이 방법으로 시도했지만 여전히 작동하지 않습니다. f : out_fname = fname + ".tmp"'codecs.open (fname, "r") with out = codecs.open (out_fname, " w ", 인코딩 = 'utf-8-sig') ' 다른 제안 사항이 있으십니까? – Krusty