Leer Datos de un Archivo
Ahora que hemos creado y escrito en book.txt, aprendamos cómo leer su contenido. Python ofrece varios métodos para leer archivos. Exploraremos los más comunes.
Continuaremos trabajando con el script file_io.py. Agregará código para leer el archivo que acaba de crear.
El Método read()
El método read() lee el contenido completo de un archivo y lo devuelve como una única cadena (string).
Agregue el siguiente código al final de su script file_io.py. Esto hará que el script primero escriba el archivo y luego lo lea e imprima su contenido.
## El código de escritura del paso anterior debe estar arriba de esto
print("\n--- Leyendo el archivo completo con read() ---")
with open("book.txt", "r") as f:
content = f.read()
print(content)
Guarde el archivo y ejecútelo desde la terminal:
python ~/project/file_io.py
La salida ahora incluirá el contenido de book.txt impreso en la consola:
--- Leyendo el archivo completo con read() ---
Bed before bright moonlight,
Suspected to be frost on the ground.
Head held high, gazing at the bright moon,
Head bowed low, thinking of my homeland.
Iterar sobre Líneas
Una forma más eficiente en cuanto a memoria para leer un archivo, especialmente uno grande, es procesarlo línea por línea. Puede hacer esto iterando directamente sobre el objeto archivo en un bucle for.
Ahora, agregue este siguiente bloque de código a file_io.py:
print("\n--- Leyendo el archivo línea por línea ---")
with open("book.txt", "r") as f:
for line in f:
print(line, end='')
Aquí, end='' en la función print() evita que agregue un salto de línea adicional, ya que cada line leída del archivo ya termina con un carácter de nueva línea (\n).
Guarde y ejecute el script nuevamente:
python ~/project/file_io.py
La salida para esta sección será idéntica a la salida del método read(), pero el proceso subyacente es diferente, leyendo una línea a la vez.
El Método readlines()
El método readlines() lee todas las líneas de un archivo y las devuelve como una lista de cadenas (strings).
Finalmente, agregue este último bloque de código a file_io.py:
print("\n\n--- Leyendo todas las líneas con readlines() ---")
with open("book.txt", "r") as f:
all_lines = f.readlines()
print(all_lines)
Guarde y ejecute el script por última vez:
python ~/project/file_io.py
La salida para esta sección será una lista de Python, donde cada elemento es una cadena que representa una línea del archivo:
--- Leyendo todas las líneas con readlines() ---
['Bed before bright moonlight,\n', 'Suspected to be frost on the ground.\n', 'Head held high, gazing at the bright moon,\n', 'Head bowed low, thinking of my homeland.']
Ahora ha practicado los métodos fundamentales tanto para escribir como para leer archivos en Python.