A la hora de programar siempre hay una serie de tareas repetitivas que me cuesta trabajo recordar. No sé si a ti te pasa lo mismo. Es por eso por lo que decidí crear la sección «Desayuno con Python» en el blog, para recopilar todos esos scripts sencillos pero útiles de uso cotidiano. Uno los scripts que no podía faltar en esta sección es cómo leer un fichero línea a línea en Python.
Leer un fichero línea a línea
Leer las líneas de un fichero es una tarea muy común y muy sencilla. Básicamente, todo se reduce a dos líneas de código:
with open('ruta_del_fichero') as f: for linea in f: # Tu código aquí
❗ Ten en cuenta que la variable linea
incluye el carácter \n
al final.
Leer un fichero en python completo
Un objeto de tipo file también ofrece un método llamado read()
. Este método leerá el fichero en su totalidad y lo devolverá como una cadena de texto. Usa este método con precaución ya que puede consumir mucha memoria si el fichero es demasiado grande. Yo lo usaría solo en caso de que el fichero fuera muy pequeño.
with open('cloudbutton.py', 'r') as f: contenido = f.read() print(contenido)
¿Qué significa la palabra with al principio del bloque?
A la hora de gestionar y manipular recursos, como puede ser un fichero, hay ciertos patrones que se suelen repetir. Para estos casos, Python nos ayuda a abstraernos del código repetitivo introduciendo lo que se conocen como «Manejadores de contexto» a través de la sentencia with
.
En el caso de los ficheros, with
nos asegura de que el fichero se cerrará correctamente después de ejecutarse el código en el interior del bloque, incluso si ocurre alguna excepción.
De manera que el siguiente código
with open('hola.txt', 'r') as f: for linea in f: ...
sería equivalente a este
f = open('hola.txt', 'r') try: for linea in f: ... finally: f.close()