Python에서는 제한된 ASCII 지원으로 인해 악센트 부호가 있는 문자가 포함된 CSV 파일을 읽는 것이 어려울 수 있습니다. 이 문서에서는 이러한 파일을 읽으려고 할 때 발생하는 "UnicodeDecodeError"를 해결하여 이 문제에 대한 솔루션을 탐색합니다.
악센트 문자를 처리하려면 CSV 리더가 필요합니다. 유니코드 인코딩을 지원합니다. 다음 코드는 표준 CSV 리더를 수정합니다.
<code class="python">def unicode_csv_reader(unicode_csv_data, dialect=csv.excel, **kwargs): # Decode UTF-8 data into Unicode strings csv_reader = csv.reader(unicode_csv_data, dialect=dialect, **kwargs) for row in csv_reader: yield [unicode(cell, 'utf-8') for cell in row]</code>
원래 솔루션에서는 유니코드 문자열 대신 바이트 문자열에 인코딩을 잘못 적용했습니다. 아래 코드는 이 실수를 수정합니다.
<code class="python">import csv def unicode_csv_reader(utf8_data, dialect=csv.excel, **kwargs): csv_reader = csv.reader(utf8_data, dialect=dialect, **kwargs) for row in csv_reader: yield [unicode(cell, 'utf-8') for cell in row]</code>
이제 다음과 같이 UTF8로 인코딩된 CSV 파일을 자신있게 읽을 수 있습니다.
<code class="python">filename = 'output.csv' reader = unicode_csv_reader(open(filename)) # Iterate through the rows, fields for field1, field2, field3 in reader: print field1, field2, field3 </code>
제공된 솔루션에서는 입력 데이터가 이미 UTF8 인코딩으로 되어 있다고 가정합니다. 그렇지 않은 경우 CSV 리더에 전달하기 전에 디코드 방법을 사용하여 UTF8로 변환할 수 있습니다.
위 내용은 Python에서 악센트 문자가 있는 UTF8 CSV 파일을 읽는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!