Ich muss eine Textdatei in Python lesen. Die Datei-Codierung ist:UnicodeDecodeError in Python beim Lesen einer Datei, wie man den Fehler ignoriert und zur nächsten Zeile springt?
file -bi test.csv
text/plain; charset=us-ascii
Dies ist eine Drittanbieter-Datei, und ich bekomme einen neuen jeden Tag, so dass ich lieber nicht ändern. Die Datei hat nicht-ASCII-Zeichen, wie z. B. Ö. Ich muss die Zeilen mit Python lesen, und ich kann es mir leisten, eine Zeile zu ignorieren, die ein nicht-ASCII-Zeichen hat.
Mein Problem ist, dass, wenn ich die Datei in Python lese, bekomme ich die UnicodeDecodeError beim Erreichen der Zeile, wo ein Nicht-ASCII-Zeichen existiert, und ich kann den Rest der Datei nicht lesen.
Gibt es eine Möglichkeit, dies zu vermeiden. Wenn ich das versuchen:
fileHandle = codecs.open("test.csv", encoding='utf-8');
try:
for line in companiesFile:
print(line, end="");
except UnicodeDecodeError:
pass;
dann, wenn der Fehler die Enden für Schleife erreicht und ich kann die restlichen der Datei nicht lesen. Ich möchte die Zeile überspringen, die den Fehler verursacht und weitermachen. Ich würde, wenn möglich, lieber keine Änderungen an der Eingabedatei vornehmen.
Gibt es eine Möglichkeit, dies zu tun? Vielen Dank.
Warum verwenden Sie 'codecs.open()' in Python 3? 'open()' behandelt UTF-8 ** einfach in Ordnung **. –
Ich habe auch versucht, mit offenen, bekomme ich den gleichen Fehler – Chicoscience
Wissen Sie, welche Kodierung die Datei wirklich verwendet? Es ist eindeutig nicht "us-ascii", wie es durch die Ausgabe "file" gezeigt wird, da es nicht-ASCII-Zeichen enthält. – dano