UnicodeDecodeError : 'charmap'코덱은 Y 위치에서 바이트 X를 디코딩 할 수 없습니다.
정보로 채워진 텍스트 파일로 일부 조작을 수행하는 Python 3 프로그램을 얻으려고합니다. 그러나 파일을 읽으려고 할 때 다음 오류가 발생합니다.
역 추적 (최근의 마지막 호출) : UnicodeDecodeError의 'C : \ Python31 \ lib \ encodings \ cp1252.py'파일 23
행의 파일 "SCRIPT LOCATION", NUMBER
text = file.read()
행,
return codecs.charmap_decode(input,self.errors,decoding_table)[0]
'charmap'코덱에서 바이트를 디코딩 할 수 없음 위치 2907500의 0x90 : 문자가<undefined>
문제의 파일이 CP1252
인코딩을 사용하지 않습니다 . 다른 인코딩을 사용하고 있습니다. 어느 것을 스스로 알아 내야합니까? 일반적인 것은 Latin-1
및 UTF-8
입니다. 이후 0x90가 실제로에서 평균 아무것도하지 않는 Latin-1
, UTF-8
( 0x90이 연속 바이트)를 가능성이 높습니다.
파일을 열 때 인코딩을 지정합니다.
file = open(filename, encoding="utf8")
@LennartRegebro의 답변에 대한 확장으로 :
파일에서 어떤 인코딩을 사용하는지 알 수없고 위의 솔루션이 작동하지 않고 (그렇지 않은 경우 utf8
) 추측 만하 는 경우, 어떤 인코딩인지 식별하는 데 사용할 수 있는 온라인 도구 가 있습니다. 그들은 완벽하지는 않지만 일반적으로 잘 작동합니다. 인코딩을 알아 낸 후에는 위의 솔루션을 사용할 수 있어야합니다.
편집 : (의견에서 복사)
인기있는 텍스트 편집기 Sublime Text
에는 인코딩이 설정된 경우 표시하는 명령이 있습니다 ...
- 이동
View
->Show Console
(또는 Ctrl+ `)
- 맨 아래에 필드에 입력
view.encoding()
하고 최고를 바라고 (나는 아무것도 얻을 수 없지만Undefined
운이 좋을 것입니다 ...)
file = open(filename, encoding="utf8")
시도하지 않는 경우에 추가하기 만하면됩니다.file = open(filename, errors='ignore')
또는 파일을 웹 사이트에 업로드하는 등 파일을 디코딩 할 필요가없는 경우 open(filename, 'rb')
. r = 판독 값, b = 이진
Windows의 Anaconda에서 일하는 사람들에게는 동일한 문제가 있습니다. 메모장 ++로 해결할 수 있습니다.
메모장 ++에서 파일을 엽니 다. 오른쪽 하단에 현재 파일 인코딩이 표시됩니다. 최상위 메뉴에서 "보기"옆의 "인코딩"을 찾으십시오. "인코딩"에서 "문자 세트"로 가서 환자가 필요한 enconding을 찾으십시오. 제 경우에는 "Windows-1252"인코딩이 "서유럽 어"아래에 있습니다.
도와주세요.
'development' 카테고리의 다른 글
Java 8 Iterable.forEach () 대 foreach 루프 (0) | 2020.02.18 |
---|---|
명령 행에서 R 스크립트 실행 (0) | 2020.02.18 |
지연된 배열을 $ .when ()에 전달 (0) | 2020.02.18 |
git mark를 삭제하고 새 파일을 파일 이동으로 만드는 방법은 무엇입니까? (0) | 2020.02.17 |
다른 포크에서 병합되지 않은 업스트림 풀 요청을 포크에 적용하는 방법은 무엇입니까? (0) | 2020.02.17 |