lunes, 23 de enero de 2023

Python: leyendo un archivo de texto -

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!

¿Qué historia hay detrás de las famosas máscaras de red?

Introducción ¿Recuerdas cuando estabas aprendiendo de máscaras de red? Seguro llegaste a pensar: “no sirven para nada”, “no las voy a necesi...