Hier ist mein Code,
for line in open('u.item'):
#read each line
Wenn ich diesen Code ausführe, wird der folgende Fehler ausgegeben:
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe9 in position 2892: invalid continuation byte
Ich habe versucht, dies zu lösen und einen zusätzlichen Parameter in open () hinzuzufügen. Der Code sieht so aus.
for line in open('u.item', encoding='utf-8'):
#read each line
Aber es gibt wieder den gleichen Fehler. was sollte ich dann tun! Bitte helfen Sie.
python
python-3.x
character-encoding
Sujits
quelle
quelle
Antworten:
Wie von Mark Ransom vorgeschlagen, habe ich die richtige Codierung für dieses Problem gefunden. Die Codierung war "ISO-8859-1", daher wird das Problem durch Ersetzen
open("u.item", encoding="utf-8")
durch ersetztopen('u.item', encoding = "ISO-8859-1")
.quelle
chardet
. Hier ist der Einzeiler (nachimport chardet
) :chardet.detect(open(in_file, 'rb').read())['encoding']
. Überprüfen Sie heraus diese Antwort für Details: stackoverflow.com/a/3323810/615422Auch für mich hat ISO 8859-1 viel gespart, hahaha, hauptsächlich wenn Spracherkennungs-APIs verwendet werden
Beispiel:
quelle
Ihre Datei enthält keine utf-8-codierten Daten, sondern eine andere Codierung. Finden Sie heraus, was diese Codierung ist, und verwenden Sie sie im
open
Aufruf.Bei der Windows-1252-Codierung
0xe9
wäre dies beispielsweise das Zeichené
.quelle
Versuchen Sie dies, um mit Pandas zu lesen
quelle
Wenn Sie
Python 2
Folgendes verwenden, wird die Lösung:Da der
encoding
Parameter nicht funktioniertopen()
, wird der folgende Fehler angezeigt:quelle
Python 2
'ISO-8859-1'
wird dies auch als'latin-1'
oder bezeichnet'latin1'
.Sie können das Problem beheben mit:
'rb' liest eine Datei im Binärmodus. Lesen Sie hier mehr . Hoffe das wird helfen!
quelle
Das funktioniert:
oder:
quelle
Wenn jemand nach diesen sucht, ist dies ein Beispiel für die Konvertierung einer CSV-Datei in Python 3:
quelle
Manchmal , wenn
open(filepath)
in demfilepath
Moment nicht eine Datei würde den gleichen Fehler, so zunächst sicherstellen , dass die Datei , die Sie versuchen , sind offen vorhanden ist :hoffe das wird helfen.
quelle
Sie können dies folgendermaßen versuchen:
quelle