Devo leggere un file di testo in Python. La codifica del file è:UnicodeDecodeError in Python durante la lettura di un file, come ignorare l'errore e passare alla riga successiva?
file -bi test.csv
text/plain; charset=us-ascii
Questo file e di terze parti, e ottengo uno nuovo ogni giorno, quindi preferirei non cambiarlo. Il file ha caratteri non ascii, ad esempio Ö, ad esempio. Ho bisogno di leggere le righe usando python, e posso permettermi di ignorare una linea che ha un carattere non-ascii.
Il mio problema è che quando leggo il file in Python, ottengo l'errore UnicodeDecodeError quando raggiungo la linea in cui esiste un carattere non-ascii e non riesco a leggere il resto del file.
C'è un modo per evitare questo. Se provo questo:
fileHandle = codecs.open("test.csv", encoding='utf-8');
try:
for line in companiesFile:
print(line, end="");
except UnicodeDecodeError:
pass;
poi, quando viene raggiunto l'errore del ciclo per fini e non riesco a leggere il restante del file. Voglio saltare la linea che causa l'errore e andare avanti. Preferirei non apportare alcuna modifica al file di input, se possibile.
C'è un modo per farlo? Grazie mille.
Perché stai usando 'codecs.open()' in Python 3? 'open()' gestisce UTF-8 ** bene **. –
Ho anche provato ad usare open, ricevo lo stesso errore – Chicoscience
Sapete cosa sta veramente usando la codifica del file? Non è chiaramente 'us-ascii' come mostrato dall'output' file', poiché contiene caratteri non ascii. – dano