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