UnicodeDecodeError : 'utf-8'코덱이 바이트를 디코딩 할 수 없습니다
여기 내 코드가 있습니다.
for line in open('u.item'):
#read each line
이 코드를 실행할 때마다 다음 오류가 발생합니다.
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe9 in position 2892: invalid continuation byte
이 문제를 해결하고 open ()에 추가 매개 변수를 추가하려고했습니다. 코드는 다음과 같습니다.
for line in open('u.item', encoding='utf-8'):
#read each line
그러나 다시 같은 오류가 발생합니다. 그럼 어떻게해야합니까! 도와주세요.
Mark Ransom이 제안한 것처럼 해당 문제에 적합한 인코딩을 찾았습니다. 인코딩 정도로 교체 "ISO-8859"을 open("u.item", encoding="utf-8")
가진 open('u.item', encoding = "ISO-8859-1")
문제점을 해결하는 것이다.
ISO 8859-1은 주로 Speech Recognition API를 사용하는 경우 많은 것을 절약 할 것입니다.
예:
file = open('../Resources/' + filename, 'r', encoding="ISO-8859-1");
파일에 실제로 utf-8로 인코딩 된 데이터가없고 다른 인코딩이 포함되어 있습니다. 해당 인코딩이 무엇인지 파악하고 open
통화에 사용하십시오 .
예를 들어 Windows-1252 인코딩 0xe9
에서는 문자가 é
됩니다.
팬더를 사용하여 읽으십시오.
pd.read_csv('u.item', sep='|', names=m_cols , encoding='latin-1')
Python 2
다음을 사용 하는 경우 해결책이 있습니다.
import io
for line in io.open("u.item", encoding="ISO-8859-1"):
# do something
encoding
매개 변수가에서 작동하지 않기 때문에 open()
다음 오류가 발생합니다.
TypeError : 'encoding'은이 함수에 유효하지 않은 키워드 인수입니다.
다음과 같은 문제를 해결할 수 있습니다.
for line in open(your_file_path, 'rb'):
'rb'는 이진 모드에서 파일을 읽고 있습니다. 자세한 내용은 여기를 참조 하십시오 . 이것이 도움이되기를 바랍니다!
누군가 이것을 찾고 있다면, 이것은 Python 3에서 CSV 파일을 변환하는 예제입니다.
try:
inputReader = csv.reader(open(argv[1], encoding='ISO-8859-1'), delimiter=',',quotechar='"')
except IOError:
pass
때때로 때 open(filepath)
하는 filepath
사실이 아닌 파일은 존재 열려고하고 있는지 파일을 그래서 첫째로, 같은 오류를 얻을 것이다 :
import os
assert os.path.isfile(filepath)
이것이 도움이되기를 바랍니다.
참고 URL : https://stackoverflow.com/questions/19699367/unicodedecodeerror-utf-8-codec-cant-decode-byte
'Programing' 카테고리의 다른 글
Java 코드 바이트를 16 진수로 변환하려면 (0) | 2020.05.25 |
---|---|
C # 코드에서 WPF 텍스트 상자의 배경색 설정 (0) | 2020.05.25 |
투명한 UIView 뒤의 버튼을 어떻게 클릭합니까? (0) | 2020.05.25 |
include의 반대가 있습니까? (0) | 2020.05.25 |
SqlParameter에 null 할당 (0) | 2020.05.25 |