Heim >Backend-Entwicklung >Python-Tutorial >Wie lese ich eine UTF8-CSV-Datei mit Akzentzeichen in Python?

Wie lese ich eine UTF8-CSV-Datei mit Akzentzeichen in Python?

Susan Sarandon
Susan SarandonOriginal
2024-11-03 00:40:29305Durchsuche

How to Read a UTF8 CSV File with Accented Characters in Python?

Lesen einer UTF8-CSV-Datei mit Python

Beim Versuch, eine CSV-Datei mit Akzentzeichen mit Python (insbesondere Spanisch oder Französisch) zu lesen, tritt aufgrund von Python ein Problem auf Standard-ASCII-Unterstützung in seinem CSV-Reader.

Um dieses Problem zu beheben, wird ein modifizierter Codeausschnitt vorgeschlagen, um die CSV-Datei wie folgt zu lesen:

<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]

filename = 'output.csv'
reader = unicode_csv_reader(open(filename))
for field1, field2, field3 in reader:
    ...</code>

Dieser Code geht davon aus, dass die Eingabedaten bereits in UTF vorliegen -8-Kodierung. Wenn die Eingabedaten in einer anderen Kodierung vorliegen, kann der folgende „Transkodierungs“-Ansatz angewendet werden:

<code class="python">line.decode('whateverweirdcodec').encode('utf-8')</code>

Durch Ersetzen von „whateverweirdcodec“ durch die entsprechende Kodierung können die Eingabedaten zuvor in UTF-8 konvertiert werden wird vom csvreader gelesen.

Das obige ist der detaillierte Inhalt vonWie lese ich eine UTF8-CSV-Datei mit Akzentzeichen in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn