Ich versuche, eine CSV-Datei mit cp1252 Codierung wie folgt zu lesen:Encoding Fehler auf io Dateiobjekt mit csv.reader mit Nicht-ASCII-Kodierung
import io
import csv
csvr = csv.reader(io.open('data.csv', encoding='cp1252'))
for row in csvr:
print row
Der relevante Inhalt von ‚data.csv‘ ist
Curva IV
Fecha: 27-Jul-2016 16:22:40
Muestra: 1
Tensión Corriente Ig
0.000000e+000 1.154330e-004 -2.984730e-004
...
und ich bekomme die folgende Ausgabe
['Curva IV']
['Fecha: 27-Jul-2016 16:22:40']
['Muestra: 1']
Traceback (most recent call last):
File "D:/sandbox/bla.py", line 347, in <module>
mist()
File "D:/sandbox/bla.py", line 343, in mist
for row in csvr:
UnicodeEncodeError: 'ascii' codec can't encode character u'\xf3' in position 5: ordinal not in range(128)
, die ich überhaupt nicht verstehen. Offensichtlich ist die kritische Linie das mit dem Akzent auf dem 'o'. Es scheint, als ob der Iterator des von csv.reader zurückgegebenen Objekts versucht, eine Konvertierung durchzuführen. Die Ausnahme wird vor der print-Anweisung ausgelöst. Es ist also kein Problem mit meiner Terminalcodierung. Irgendwelche Ideen, was hier vor sich geht?