여기 내 코드가 있습니다.
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'은이 함수에 유효하지 않은 키워드 인수입니다.