"for line in..." 반복자로 UnicodeDecodeError 문제 해결
텍스트 파일 작업 시 개발자는 종종 "for line"과 같은 반복자를 사용합니다. in..."을 사용하여 파일의 각 줄을 읽고 처리합니다. 그러나 때로는 이로 인해 실망스러운 UnicodeDecodeError가 발생할 수 있습니다.
문제:
다음 코드를 고려하세요.
<code class="python">for line in open('u.item'): # Read each line</code>
위 코드를 실행할 때 , 다음 오류가 발생할 수 있습니다.
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe9 in position 2892: invalid continuation byte
이 오류는 Python이 UTF-8 인코딩을 사용하여 파일의 바이트를 해석하려고 시도했지만 UTF-8 표준을 따르지 않는 바이트를 발견했을 때 발생합니다. .
해결책:
이 문제에 대한 해결책은 파일의 올바른 인코딩을 결정하는 데 있습니다. 이 경우 파일은 UTF-8과 다른 문자 인코딩 방식인 ISO-8859-1로 인코딩됩니다.
오류를 수정하려면 파일을 열 때 인코딩을 지정하세요.
<code class="python">for line in open('u.item', encoding='ISO-8859-1'): # Read each line</code>
'utf-8'의 기본 인코딩을 'ISO-8859-1'로 바꾸면 올바른 문자 인코딩을 사용하여 파일의 바이트를 디코딩하여 UnicodeDecodeError를 해결합니다.
위 내용은 텍스트 파일을 반복할 때 UnicodeDecodeError를 해결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!