próbuję zaimportować plik CSV, używając tego kodu:UnicodeDecodeError w Pythonie 3 podczas importowania pliku 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:])
Oto próbka mojego pliku csv:
foo,bar,test,1,2
this,wont,work,because,α
a błąd :
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)
Oczywiście, to uderzanie znak na końcu pliku CSV i rzuca ten błąd, ale jestem ze stratą, jak to naprawić . Jakaś pomoc?
to:
Python 3.2.3 (default, Apr 23 2012, 23:35:30)
[GCC 4.7.0 20120414 (prerelease)] on linux2
Ustawianie kodowania dla pliku nie robi nic, aby rozwiązać ten problem ... 'plik = open (filename, 'r' encoding = 'UTF-8') wciąż daje mi' 'UnicodeDecodeError: 'ascii' codec nie może dekodować bajtu 0xce w pozycji 40: porządkowy nie w zakresie (128) ' –
Ah, ma to związek z' print' nie mogącym wyświetlać znaków unicode. To pytanie na Quora może mieć odpowiedź - używa ładnej drukarki: http://www.quora.com/How-do-you-print-a-python-unicode-data-structure – TheDude
Myślę, że błąd nie ma nic wspólnego z Zrób z wydrukiem w ogóle. Występuje błąd na początku pętli for, zanim print() zostanie uruchomiony. Zmieniony przykładowy kod wykorzystujący pprint daje taki sam błąd jak poprzednio, co dodatkowo wzmocni to roszczenie. Jestem zaskoczony. –