Heim >Backend-Entwicklung >Python-Tutorial >Wie behebe ich einen „UnicodeDecodeError' beim Lesen von Textdateien in Python?
Beim Versuch, in einer Textdatei gespeicherte Daten zu manipulieren, ist der folgende Fehler aufgetreten:
Traceback (most recent call last): File "SCRIPT LOCATION", line NUMBER, in <module> text = file.read() File "C:\Python31\lib\encodings\cp1252.py", line 23, in decode return codecs.charmap_decode(input,self.errors,decoding_table)[0] UnicodeDecodeError: 'charmap' codec can't decode byte 0x90 in position 2907500: character maps to `<undefined>`
Dieser Fehler ist auf eine Diskrepanz zwischen der angenommenen Kodierung (CP1252) und der tatsächlichen Kodierung der Datei zurückzuführen. Um dieses Problem zu lösen, müssen wir die richtige Kodierung identifizieren und beim Öffnen der Datei explizit angeben.
Identifizieren der Dateikodierung
Wie in der Frage angegeben, bestimmend Die Kodierung der Datei ist entscheidend. Leider muss dies manuell erfolgen. Zu den gängigen Kodierungen gehören Latin-1 und UTF-8. Da 0x90 jedoch kein gültiges Zeichen in Latin-1 ist, ist UTF-8 ein guter Kandidat.
Angabe der Kodierung
Sobald Sie die Kodierung festgelegt haben , Sie können es beim Öffnen der Datei mit dem Kodierungsparameter angeben:
file = open(filename, encoding="utf8")
Durch die Bereitstellung der richtigen Kodierung kann Python ordnungsgemäß funktionieren Dekodieren Sie die Textdatei und ermöglichen Sie Ihnen, ihren Inhalt zu bearbeiten, ohne auf die Ausnahme „UnicodeDecodeError“ zu stoßen.
Das obige ist der detaillierte Inhalt vonWie behebe ich einen „UnicodeDecodeError' beim Lesen von Textdateien in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!