2013-08-30 4 views
1

어떤 이유에서든 파일에 텍스트를 추가하려고 할 때마다 아시아 문자가 여러 개 추가됩니다.파일에 제대로 추가되지 않습니다.

with open(rutaCuentasCFG+'cuentas.cfg', 'r') as file: 
    contFile = file.readlines() 

cantidadCuentas = len(contFile) 

with open('C:\Sandboxie.ini', 'a', encoding='utf-8') as file: 
    for cont in range(1,len(contFile)+1): 
     config = ['\n','\n'+'[steam'+str(cont)+']'+'\n', 
        '\n', 
        'Enabled=y'+'\n', 
        'ConfigLevel=7'+'\n', 
        'AutoRecover=y'+'\n', 
        'Template=BlockPorts'+'\n', 
        'Template=LingerPrograms'+'\n', 
        'Template=Firefox_Phishing_DirectAccess'+'\n', 
        'Template=AutoRecoverIgnore'+'\n', 
        'RecoverFolder=%{374DE290-123F-4565-9164-39C4925E467B}%'+'\n', 
        'RecoverFolder=%Personal%'+'\n', 
        'RecoverFolder=%Favorites%'+'\n', 
        'RecoverFolder=%Desktop%'+'\n', 
        'BorderColor=#00FFFF,ttl'+'\n', 
        'OpenPipePath='+rutaSteamIdle+'\\SteamIdle\\'] 
     for line in config: 
      file.write(line) 

이 내가지고있어 결과입니다 : http://puu.sh/4f6y5.png

가 그리고 이것이 내가 가야 하나입니다 : http://puu.sh/4f6CE.png

가 나는 또한 인코딩을 지정하지 않고 시도 여기

내 코드입니다 같은 결과를 얻었습니다.

+0

원본 파일의 인코딩은 무엇입니까? 메모장에서 열어 "다른 이름으로 저장"을 할 때 기본 인코딩이 무엇인지 확인하십시오. – tom

+0

유니 코드 인 것 같습니다 – user2020618

+1

[메모장의 "유니 코드"는 UTF-16을 의미합니다.] (http://stackoverflow.com/questions/3710374/get-encoding-of-a-file-in-windows). 이것을 파이썬 인코딩으로 사용해보십시오. – tom

답변

1

원본 파일의 인코딩이 다릅니다. 해당 인코딩을 사용하도록 코드를 변경하십시오.

는 인코딩, 메모장에서 파일을 열 파일> 다른 이름으로 저장 ...을 클릭하고 기본 인코딩을 유의 찾을 수 있습니다. "유니 코드"는 UTF-16을 의미합니다.

관련 문제