python - start - UnicodeDecodeError: el códec ''utf-8'' no puede decodificar el byte
unicodedecodeerror: ''utf-8'' codec can''t decode byte 0xff in position 0: invalid start byte (7)
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")
con open(''u.item'', encoding = "ISO-8859-1")
resolverá el problema.
Aquí está mi código,
for line in open(''u.item''):
#read each line
cada vez que ejecuto este código, aparece el siguiente error:
UnicodeDecodeError: ''utf-8'' codec can''t decode byte 0xe9 in position 2892: invalid continuation byte
Traté de 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.
Intenta leer esto usando pandas
pd.read_csv(''u.item'', sep=''|'', names=m_cols , encoding=''latin-1'')
Si alguien está buscando esto, este es un ejemplo para convertir un archivo CSV en Python 3:
try:
inputReader = csv.reader(open(argv[1], encoding=''ISO-8859-1''), delimiter='','',quotechar=''"'')
except IOError:
pass
Si está utilizando Python 2
la siguiente solución será la siguiente:
import io
for line in io.open("u.item", encoding="ISO-8859-1"):
# do something
Debido a que el parámetro de encoding
no funciona con open()
, obtendrá el siguiente error:
TypeError: ''encoding'' is an invalid keyword argument for this function
Su archivo en realidad no contiene datos codificados en utf-8, contiene alguna otra codificación. Averigüe qué es esa codificación y úsela en la llamada open
.
En la codificación de Windows-1252, por ejemplo, el 0xe9
sería el carácter é
.
También funcionó para mí, ISO 8859-1 va a ahorrar mucho, jajaja, principalmente si usa API de Reconocimiento de voz
Ejemplo:
file = open(''../Resources/'' + filename, ''r'', encoding="ISO-8859-1");
La más simple de todas las soluciones:
Usa Pandas para leer archivos, es muy simple:
import pandas as pd
data = pd.read_csv(''file_name.csv'', encoding=''utf-8'')