Warum wirft Python beim Öffnen einer Datei den Fehler „UnicodeDecodeError: \'utf-8\' codec can\'t decode byte 0xff...' aus?

Patricia Arquette
Freigeben: 2024-11-03 21:07:29
Original
682 Leute haben es durchsucht

Why Does Python Throw a

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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.

beheben

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

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
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!