Ich versuche, eine CSV-Datei zu importieren, diesen Code verwenden:UnicodeDecodeError in Python 3, wenn eine CSV-Datei importieren
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:])
Hier ist eine Probe meiner CSV-Datei:
foo,bar,test,1,2
this,wont,work,because,α
Und der Fehler :
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)
Offensichtlich ist es am Ende des CSV den Charakter trifft und diesen Fehler zu werfen, aber ich bin ratlos, wie diese zu beheben . Irgendeine Hilfe?
Dies ist:
Python 3.2.3 (default, Apr 23 2012, 23:35:30)
[GCC 4.7.0 20120414 (prerelease)] on linux2
die Codierung für die Datei Einstellung hat nichts, um das Problem zu beheben ... 'file = open (Dateiname, 'r', encoding = 'utf-8')' noch gibt mir 'UnicodeDecodeError: 'ascii' Codec kann Byte 0xce an Position 40 nicht dekodieren: Ordnungszahl nicht im Bereich (128) ' –
Ah, es hat damit zu tun, dass' print' keine Unicode-Zeichen darstellen kann. Diese Frage auf Quora kann die Antwort haben - es verwendet einen hübschen Drucker: http://www.quora.com/How-do-you-print-a-python-unicode-data-structure – TheDude
Ich denke, der Fehler hat nichts zu tun mache mit dem Druck überhaupt. Es trifft den Fehler am Anfang der for-Schleife, bevor der Ausdruck() sogar ausgeführt wird. Ihr bearbeiteter Beispielcode mit pprint liefert den gleichen Fehler wie zuvor, was diesen Anspruch weiter verstärkt. Ich bin ratlos. –