Hier is mijn code,
for line in open('u.item'):
# Read each line
Wanneer ik deze code uitvoer, geeft het de volgende foutmelding:
UnicodedecodeError: ‘UTF-8’ Codec kan niet decoderen byte 0xe9 in positie 2892: ongeldige continuation byte
Ik heb geprobeerd dit op te lossen en een extra parameter toe te voegen (). De code ziet eruit als:
for line in open('u.item', encoding='utf-8'):
# Read each line
Maar nogmaals, het geeft dezelfde fout. Wat moet ik dan doen?
Antwoord 1, Autoriteit 100%
Zoals Aanbevolen door Mark Ransom vond ik de juiste codering voor dat probleem. De codering was "ISO-8859-1"
, dus het vervangen van open("u.item", encoding="utf-8")
MET open('u.item', encoding = "ISO-8859-1")
zal het probleem oplossen.
Antwoord 2, Autoriteit 12%
Het volgende werkte ook voor mij. ISO & NBSP; 8859-1 gaat veel opslaan, hahaha – voornamelijk als gebruik van spraakherkenning API’s.
Voorbeeld:
file = open('../Resources/' + filename, 'r', encoding="ISO-8859-1");
Antwoord 3, Autoriteit 7%
Uw bestand bevat niet daadwerkelijk UTF-8 gecodeerde gegevens; Het bevat een andere codering. Zoek uit wat dat codeert is en gebruik het in de open
CALL.
In Windows-1252-codering, bijvoorbeeld de 0xe9
zou het teken é
zijn.
Antwoord 4, autoriteit 4%
Probeer dit te lezen met Panda’s:
pd.read_csv('u.item', sep='|', names=m_cols, encoding='latin-1')
Antwoord 5, autoriteit 3%
Dit werkt:
open('filename', encoding='latin-1')
Of:
open('filename', encoding="ISO-8859-1")
Antwoord 6, autoriteit 3%
Als je Python 2 gebruikt, is het volgende de oplossing:
import io
for line in io.open("u.item", encoding="ISO-8859-1"):
# Do something
Omdat de parameter encoding
niet werkt met open()
, krijgt u de volgende foutmelding:
TypeError: ‘encoding’ is een ongeldig trefwoordargument voor deze functie
Antwoord 7, autoriteit 3%
U kunt het probleem oplossen met:
for line in open(your_file_path, 'rb'):
‘rb’ leest het bestand in binaire modus. Lees hier.
Antwoord 8
Je kunt het op deze manier proberen:
open('u.item', encoding='utf8', errors='ignore')
Antwoord 9
Dit is een voorbeeld voor het converteren van een CSV-bestand in Python 3:
try:
inputReader = csv.reader(open(argv[1], encoding='ISO-8859-1'), delimiter=',',quotechar='"')
except IOError:
pass
Antwoord 10
Soms bij gebruik van open(filepath)
In welke filepath
Eigenlijk geen bestand is, krijgt u eerst de Bestand dat u probeert te openen bestaat:
import os
assert os.path.isfile(filepath)
Antwoord 11
Open uw bestand met notepad ++ , selecteer “Codering” of “Encodage “Menu om te identificeren of om te converteren van ANSI naar UTF-8 of de ISO & NBSP; 8859-1 codepagina.
Antwoord 12
, zodat de webpagina sneller wordt doorzocht voor de Google-aanvraag op een vergelijkbare vraag (over fout met UTF-8), laat ik mijn solvation hier voor anderen.
Ik had een probleem met. CSV-bestand openen met die beschrijving:
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe9 in position 150: invalid continuation byte
Ik heb het bestand geopend met Kladblok & amp; geteld 150e positie: dat was een cyrillisch symbool.
Ik herbergde dat bestand met ‘Opslaan als ..’ Opdracht met codering ‘UTF-8’ & AMP; Mijn programma begon te werken.