Situación:
Leyendo un archivo en python3 de texto (csv o txt) hay un carácter que se puede "apreciar" utilizando "more" en terminal pero en python3 es más complicada la situación.
Ejemplo 1:
$ more epa.csv
<U+FEFF>el texto
En mi caso, el archivo lo generé utilizando Excel y grabando como csv.
Ejemplo 2:
Problema:
Python3 lee el archivo bien, no arroja error pero ese "carácter" invisible queda en las variables, los textos, etc y puede traer algún inconveniente.
Solución:
La solución es leer el archivo y especificar el encoding, algo tan sencillo como:
FILENAME="epa.csv"
with open(FILENAME, encoding='utf-8-sig') as file:
for line in file:
print (line)
Explicación (tomado de: https://stackoverflow.com/questions/17912307/u-ufeff-in-python-string):
The Unicode character U+FEFF is the byte order mark, or BOM, and is used to tell the difference between big- and little-endian UTF-16 encoding.
Espero te haya ayudado
No hay comentarios:
Publicar un comentario
¿Algo adicional que quieras mencionar? ¿Algun consejo?, ¿truco? Gracias!