Voici mon code,
for line in open('u.item'):
#read each line
chaque fois que j'exécute ce code, il donne l'erreur suivante:
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe9 in position 2892: invalid continuation byte
J'ai essayé de résoudre ce problème et d'ajouter un paramètre supplémentaire dans open (), le code ressemble;
for line in open('u.item', encoding='utf-8'):
#read each line
Mais encore une fois, cela donne la même erreur. que dois-je faire alors! Veuillez aider.
Réponses:
Comme suggéré par Mark Ransom, j'ai trouvé le bon encodage pour ce problème. L'encodage était "ISO-8859-1", donc le remplacer
open("u.item", encoding="utf-8")
paropen('u.item', encoding = "ISO-8859-1")
résoudra le problème.la source
chardet
. Voici le one-liner (aprèsimport chardet
):chardet.detect(open(in_file, 'rb').read())['encoding']
. Consultez cette réponse pour plus de détails: stackoverflow.com/a/3323810/615422A également fonctionné pour moi, ISO 8859-1 va économiser beaucoup, hahaha, principalement si vous utilisez les API de reconnaissance vocale
Exemple:
la source
Votre fichier ne contient pas réellement de données encodées en utf-8, il contient un autre encodage. Découvrez ce qu'est cet encodage et utilisez-le dans l'
open
appel.Dans le codage Windows-1252 par exemple, le
0xe9
serait le caractèreé
.la source
Essayez ceci pour lire en utilisant des pandas
la source
Si vous utilisez
Python 2
ce qui suit la solution:Parce que le
encoding
paramètre ne fonctionne pas avecopen()
, vous obtiendrez l'erreur suivante:la source
Python 2
'ISO-8859-1'
est également appelé'latin-1'
ou'latin1'
.Vous pouvez résoudre le problème avec:
'rb' lit un fichier en mode binaire. Lisez plus ici . J'espère que cela vous aidera!
la source
Cela marche:
ou:
la source
Si quelqu'un les recherche, voici un exemple de conversion d'un fichier CSV en Python 3:
la source
Parfois, lorsque
open(filepath)
cefilepath
n'est pas le cas, un fichier obtiendrait la même erreur, alors assurez-vous d'abord que le fichier que vous essayez d'ouvrir existe:j'espère que cela vous aidera.
la source
vous pouvez essayer de cette façon:
la source