Aici este codul meu,
for line in open('u.item'):
#read each line
ori de câte ori am rula acest cod se da urmatoarea eroare:
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe9 in position 2892: invalid continuation byte
Am încercat pentru a rezolva acest lucru și adăugați un parametru în plus în open(), codul arata ca;
for line in open('u.item', encoding='utf-8'):
#read each line
Dar din nou se dă aceeași eroare. ce ar trebui să fac atunci! Vă rugăm să ajute.
Cum a sugerat de către Mark Răscumpărare, am găsit dreptul de codare pentru această problemă. Codificarea a fost "ISO-8859-1", deci înlocuirea deschise("u.elementul", encoding="utf-8") " cu " open('u.element', encoding = "ISO-8859-1") va rezolva problema.
Dacă sunteți folosind Python 2` următoarele vor soluție:
import io
for line in io.open("u.item", encoding="ISO-8859-1"):
# do something
Pentru codareparametru nu't de lucru cu open()
, veți primi următorul mesaj de eroare:
TypeError: 'codare' este invalid de cuvinte cheie argument pentru această funcție
Dacă cineva în căutarea pentru acestea, acesta este un exemplu pentru a converti un fișier CSV în Python 3:
try:
inputReader = csv.reader(open(argv[1], encoding='ISO-8859-1'), delimiter=',',quotechar='"')
except IOError:
pass
Uneori când deschise(filepath)în care
filepath` de fapt nu este un fișier ar obține aceeași eroare, deci, în primul rând asigurați-vă că fișierul're încercarea de a deschide există:
import os
assert os.path.isfile(filepath)
sper că acest lucru vă va ajuta.