Aquí está mi código
for line in open('u.item'):
#read each line
cada vez que ejecuto este código me da el siguiente error:
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe9 in position 2892: invalid continuation byte
Intenté resolver esto y agregar un parámetro adicional en open (), el código se ve así;
for line in open('u.item', encoding='utf-8'):
#read each line
Pero nuevamente da el mismo error. ¡que debería hacer entonces! Por favor ayuda.
python
python-3.x
character-encoding
Sujitos
fuente
fuente
Respuestas:
Como sugirió Mark Ransom, encontré la codificación correcta para ese problema. La codificación era "ISO-8859-1", por lo que reemplazar
open("u.item", encoding="utf-8")
conopen('u.item', encoding = "ISO-8859-1")
va a resolver el problema.fuente
chardet
. Aquí está la de una sola línea (despuésimport chardet
):chardet.detect(open(in_file, 'rb').read())['encoding']
. Mira esta respuesta para más detalles: stackoverflow.com/a/3323810/615422También funcionó para mí, ISO 8859-1 va a ahorrar mucho, jajaja, principalmente si se usan las API de reconocimiento de voz
Ejemplo:
fuente
Su archivo en realidad no contiene datos codificados utf-8, contiene alguna otra codificación. Averigua cuál es esa codificación y úsala en la
open
llamada.En Windows-1252, por ejemplo, la codificación
0xe9
sería el carácteré
.fuente
Prueba esto para leer usando pandas
fuente
Si está utilizando
Python 2
lo siguiente será la solución:Como el
encoding
parámetro no funcionaopen()
, recibirá el siguiente error:fuente
Python 2
'ISO-8859-1'
también se conoce como'latin-1'
o'latin1'
.Podrías resolver el problema con:
'rb' está leyendo el archivo en modo binario. Lee más aquí . Espero que esto ayude!
fuente
Esto funciona:
o:
fuente
Si alguien busca estos, este es un ejemplo para convertir un archivo CSV en Python 3:
fuente
A veces, cuando
open(filepath)
enfilepath
realidad no hay un archivo, se obtiene el mismo error, así que primero asegúrate de que el archivo que intentas abrir existe:Espero que esto ayude.
fuente
puedes intentarlo de esta manera:
fuente