Sto cercando di importare un file CSV, utilizzando questo codice:UnicodeDecodeError in Python 3 durante l'importazione di un file CSV
import csv
import sys
def load_csv(filename):
# Open file for reading
file = open(filename, 'r')
# Read in file
return csv.reader(file, delimiter=',', quotechar='\n')
def main(argv):
csv_file = load_csv("myfile.csv")
for item in csv_file:
print(item)
if __name__ == "__main__":
main(sys.argv[1:])
Ecco un esempio del mio file CSV:
foo,bar,test,1,2
this,wont,work,because,α
e l'errore :
Traceback (most recent call last):
File "test.py", line 22, in <module>
main(sys.argv[1:])
File "test.py", line 18, in main
for item in csv_file:
File "/usr/lib/python3.2/encodings/ascii.py", line 26, in decode
return codecs.ascii_decode(input, self.errors)[0]
UnicodeDecodeError: 'ascii' codec can't decode byte 0xce in position 40: ordinal not in range(128)
Ovviamente, è colpire il carattere alla fine del CSV e gettando questo errore, ma io sono in perdita quanto a come risolvere il problema . Qualsiasi aiuto?
Questo è:
Python 3.2.3 (default, Apr 23 2012, 23:35:30)
[GCC 4.7.0 20120414 (prerelease)] on linux2
L'impostazione della codifica per il file non risolve il problema ... 'file = open (nome file, 'r', encoding = 'utf-8')' mi dà ancora 'UnicodeDecodeError: 'ascii' codec non può decodificare il byte 0xce nella posizione 40: ordinale non nel range (128) ' –
Ah, ha a che fare con' print' che non è in grado di mostrare caratteri unicode. Questa domanda su Quora potrebbe avere la risposta - utilizza una stampante carina: http://www.quora.com/How-do-you-print-a-python-unicode-data-structure – TheDude
Penso che l'errore non abbia nulla da fare con la stampa a tutti. Sta colpendo l'errore all'inizio del ciclo for, prima che anche print() venga eseguito. Il codice di esempio modificato utilizzando pprint produce lo stesso errore di prima, rafforzando ulteriormente questo reclamo. Sono perplesso. –