Fehlerbehebung: „UnicodeDecodeError: ‚utf-8‘-Codec kann Byte 0xff nicht dekodieren …“ in Python Tools/Process.py
Beim Kompilieren von „process.py“ aus dem pix2pix-tensorflow-Repository löst Python den Fehler „UnicodeDecodeError: ‚utf-8‘ codec can't decode byte 0xff in position 0: invalid start byte“ aus. Beim Verfolgen des Fehlers wird auf Zeile 113 in „process.py“ verwiesen:
<code class="python">contents = open(path).read()</code>
Den Fehler verstehen:
Python versucht, ein darstellendes Byte-Array zu dekodieren eine UTF-8-codierte Zeichenfolge in eine Unicode-Zeichenfolge. Während dieses Dekodierungsprozesses stößt es auf die ungültige Bytesequenz „0xff“ am Anfang des Byte-Arrays. Diese Bytesequenz ist in der UTF-8-Codierung nicht zulässig und verursacht den Fehler.
Mögliche Ursache:
Der für die open()-Funktion angegebene Pfad enthält wahrscheinlich Binärdaten das ist nicht UTF-8-kodiert. Dies bedeutet, dass Python Textdaten erwartet und auf nicht-textuelle Zeichen stößt, was zum Dekodierungsfehler führt.
Lösung:
Um den Fehler zu beheben, ist eine Behandlung erforderlich die Datei im Binärmodus. Dadurch wird verhindert, dass Python versucht, die Binärdaten als Text zu dekodieren. So geht das:
<code class="python">with open(path, 'rb') as f: contents = f.read()</code>
Durch Hinzufügen von „b“ zum open()-Modus wird die Datei als Binärdatei behandelt und der Inhalt wird als Byte gelesen, anstatt zu versuchen, ihn als Text zu dekodieren. Dies sollte den UnicodeDecodeError.
behebenDas obige ist der detaillierte Inhalt vonWarum wirft Python beim Öffnen einer Datei den Fehler „UnicodeDecodeError: \'utf-8\' codec can\'t decode byte 0xff...' aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!