Estoy tratando de importar un archivo CSV, utilizando este código:UnicodeDecodeError en Python 3 al importar un archivo 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:])
He aquí una muestra de mi archivo csv:
foo,bar,test,1,2
this,wont,work,because,α
y el error :
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)
Obviamente, es golpear el carácter al final de la CSV y tirar ese error, pero estoy en una pérdida en cuanto a cómo solucionar este problema . ¿Alguna ayuda?
Esto es:
Python 3.2.3 (default, Apr 23 2012, 23:35:30)
[GCC 4.7.0 20120414 (prerelease)] on linux2
Establecer la codificación para el archivo no soluciona el problema ... 'file = open (filename, 'r', encoding = 'utf-8')' todavía me da 'UnicodeDecodeError: 'ascii' codec no se puede decodificar byte 0xce en posición 40: ordinal no en rango (128) ' –
Ah, tiene que ver con' print' que no puede mostrar caracteres unicode. Esta pregunta sobre Quora puede tener la respuesta: utiliza una linda impresora: http://www.quora.com/How-do-you-print-a-python-unicode-data-structure – TheDude
Creo que el error no tiene nada que ver con hacer con la impresión en absoluto. Está llegando al error al principio del ciclo for, antes de que se ejecute la impresión(). Su código de muestra editado utilizando pprint produce el mismo error que antes, lo que refuerza aún más este reclamo. Estoy perplejo. –