>  기사  >  백엔드 개발  >  Python에서 악센트 문자가 있는 UTF8 CSV 파일을 읽는 방법은 무엇입니까?

Python에서 악센트 문자가 있는 UTF8 CSV 파일을 읽는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-11-02 21:57:30179검색

How to Read UTF8 CSV Files with Accented Characters in Python?

Python으로 UTF8 CSV 파일 읽기

Python에서는 제한된 ASCII 지원으로 인해 악센트 부호가 있는 문자가 포함된 CSV 파일을 읽는 것이 어려울 수 있습니다. 이 문서에서는 이러한 파일을 읽으려고 할 때 발생하는 "UnicodeDecodeError"를 해결하여 이 문제에 대한 솔루션을 탐색합니다.

유니코드 친화적인 CSV 리더

악센트 문자를 처리하려면 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>

UTF-8 인코더

원래 솔루션에서는 유니코드 문자열 대신 바이트 문자열에 인코딩을 잘못 적용했습니다. 아래 코드는 이 실수를 수정합니다.

<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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.