Abrir un archivo y leer su contenido es una de las cosas más comunes que se hacen al realizar un análisis de datos.
En este tutorial, veremos 3 ejemplos de lectura de un archivo de texto en Python 3.
Una forma sencilla de leer un archivo de texto y analizar cada línea es utilizar la sentencia de python «readlines» en un objeto archivo.
¿Cómo leer todas las líneas de un archivo a la vez? Usa readlines()
Si quieres leer todas las líneas de un archivo al mismo tiempo, la función readlines() de Python es para ti. La función readlines de Python lee todo lo que hay en el archivo de texto y lo tiene en una lista de líneas. Aquí hay un ejemplo de cómo usar readlines de Python.
Primero abrimos el archivo usando la función open() en modo de sólo lectura. Y usamos el manejador de archivo de la apertura del archivo para leer todas las líneas usando readlines() como sigue.
# Open the file with read only permitf = open('my_text_file.txt', "r")# use readlines to read all lines in the file# The variable "lines" is a list containing all lines in the filelines = f.readlines()# close the file after reading the lines.f.close()
También podemos leer todas las líneas de un archivo a la vez de otra manera. Básicamente, utilizaríamos el objeto manejador de archivos después de abrir el archivo como argumento de la función list() para obtener todas las líneas como una lista.
Otra forma de leer las líneas de una vez es simplemente utilizar
# read all lines at oncelines = list(f)
Nota que el último carácter de cada línea es el carácter de nueva línea.
Entonces puedes recorrer la lista de «líneas» para analizar cada línea. Como puedes notar inmediatamente, «readlines» o «list(f)» funciona muy bien para un archivo de texto pequeño. Sin embargo, no es eficiente en cuanto a memoria si tus archivos de texto son realmente grandes. Una mejor manera de leer un archivo de texto que sea amigable con la memoria es leer el archivo línea por línea, es decir, una línea a la vez.
El núcleo de Python tiene (al menos) dos maneras de leer un archivo de texto línea por línea fácilmente.
¿Cómo leer un archivo de texto línea por línea usando la sentencia While en Python?
Aquí está la manera de leer el archivo de texto una línea a la vez usando la sentencia «While» y la función readline de python. Como leemos una línea a la vez con readline, podemos manejar fácilmente archivos grandes sin preocuparnos por los problemas de memoria.
# Open the file with read only permitf = open('my_text_file.txt')# use readline() to read the first line line = f.readline()# use the read line to read further.# If the file is not empty keep reading one line# at a time, till the file is emptywhile line: # in python 2+ # print line # in python 3 print is a builtin function, so print(line) # use realine() to read next line line = f.readline()f.close()
Otra variación de la lectura de un archivo con la sentencia while y la sentencia readline es la siguiente. Aquí el while comprueba el booleano y lee línea por línea hasta que llegamos al final del archivo y la línea estará vacía.
# file handle fhfh = open('my_text_file.txt')while True: # read line line = fh.readline() # in python 2, print line # in python 3 print(line) # check if line is not empty if not line: breakfh.close()
¿Cómo leer un archivo de texto línea por línea usando un iterador en Python?
También se puede usar un iterador para leer un archivo de texto línea por línea. Aquí se explica cómo hacerlo.
fh = open('my_text_file.txt')for line in fh: # in python 2 # print line # in python 3 print(line)fh.close()
Recordar cerrar el manejador de archivos («fh») con la sentencia «fh.close()» puede ser difícil inicialmente. Uno puede comprobar si un manejador de archivos está cerrado con
# check if the file file handler is closed or not>fh.closed# true if the file handler is closed True
Uno puede abrir archivos de una manera mucho más simple usando la sentencia «with» en Python, sin tener que cerrar el manejador de archivos. El operador «with» crea un gestor de contexto y cerrará automáticamente el archivo por ti cuando hayas terminado con él.
Consulta aquí para ver cómo usar la sentencia «with» para abrir archivos.
- Sentencia «with» en Python para Abrir un archivo
¿Quieres leer un archivo de texto línea por línea y saltarte las líneas de comentario? revisa este post
- 3 formas de leer un archivo y saltarse las líneas de comentario iniciales en Python
¿Quieres leer/cargar datos numéricos de un archivo de texto, revisa este post
- Cómo leer un dato/archivo numérico en Python con numpy?
¿Tienes datos en un archivo de texto csv o limitado por tabulaciones y quieres leerlo en Python? La mejor opción es utilizar el paquete pandas de Python. A continuación te explicamos cómo cargar archivos de datos en python con Pandas,
- 7 consejos para leer un archivo CSV como marco de datos de Pandas
.