Heim > Backend-Entwicklung > Python-Tutorial > Wie behebe ich UnicodeDecodeError beim Durchlaufen von Textdateien?

Wie behebe ich UnicodeDecodeError beim Durchlaufen von Textdateien?

Barbara Streisand
Freigeben: 2024-11-03 11:30:29
Original
671 Leute haben es durchsucht

How to Resolve UnicodeDecodeError When Iterating Through Text Files?

Fehlerbehebung bei UnicodeDecodeError mit „for line in...“-Iteratoren

Bei der Arbeit mit Textdateien verwenden Entwickler oft Iteratoren wie „for line in...", um jede Zeile der Datei zu lesen und zu verarbeiten. Manchmal kann dies jedoch zu einem frustrierenden UnicodeDecodeError führen.

Problem:

Berücksichtigen Sie den folgenden Code:

<code class="python">for line in open('u.item'):
    # Read each line</code>
Nach dem Login kopieren

Wenn Sie den obigen Code ausführen , kann der folgende Fehler auftreten:

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe9 in position 2892: invalid continuation byte
Nach dem Login kopieren

Dieser Fehler tritt auf, wenn Python versucht, die Bytes in der Datei mit UTF-8-Kodierung zu interpretieren, aber auf ein Byte stößt, das nicht dem UTF-8-Standard entspricht .

Lösung:

Die Lösung für dieses Problem liegt in der Bestimmung der richtigen Kodierung für die Datei. In diesem Fall ist die Datei in ISO-8859-1 kodiert, einem anderen Zeichenkodierungsschema als UTF-8.

Um den Fehler zu beheben, geben Sie beim Öffnen der Datei die Kodierung an:

<code class="python">for line in open('u.item', encoding='ISO-8859-1'):
    # Read each line</code>
Nach dem Login kopieren

Durch Ersetzen der Standardkodierung von „utf-8“ durch „ISO-8859-1“ wird die richtige Zeichenkodierung zum Dekodieren der Bytes in der Datei verwendet, wodurch der UnicodeDecodeError behoben wird.

Das obige ist der detaillierte Inhalt vonWie behebe ich UnicodeDecodeError beim Durchlaufen von Textdateien?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage