CodeGym /Cursos /Python SELF ES /Lectura de datos desde un archivo

Lectura de datos desde un archivo

Python SELF ES
Nivel 21 , Lección 1
Disponible

2.1 Lectura completa del archivo

En Python hay varias maneras de leer archivos de texto. Cada uno de estos métodos tiene sus ventajas y es adecuado para diferentes situaciones. Las formas principales de leer archivos de texto son: lectura de todo el contenido, lectura línea por línea, lectura especificando el número de caracteres, entre otros.

El método read() lee todo el contenido del archivo en una sola cadena.


file = open('example.txt', 'r')
content = file.read()
print(content)
file.close()

Es una forma muy sencilla de leer un archivo: una llamada al método y todo el contenido del archivo está en tu cadena. Este enfoque tiene desventajas: si el archivo contiene, por ejemplo, 200 MB de logs, la lectura será lenta y la memoria de tu aplicación se consumirá rápidamente.

2.2 Lectura de todas las líneas del archivo

Hay una alternativa al método read(): es el método readlines(). También lee todo el archivo en memoria, pero lo devuelve no como una sola gran cadena, sino como una lista de cadenas: cada línea del archivo será una cadena separada en la lista.

El método readlines() lee todas las líneas del archivo y las devuelve como una lista de cadenas.


file = open('example.txt', 'r')
lines = file.readlines()
for line in lines:
    print(line.strip())  # strip() elimina espacios extra y caracteres de nueva línea
file.close()

Este enfoque puede ser conveniente si ya sabes que necesitas procesar el contenido del archivo línea por línea. Las desventajas son que este método puede consumir mucha memoria para archivos muy grandes, ya que todas las líneas se cargan en la memoria.

2.3 Iteración sobre las líneas del archivo

El objeto file tiene un iterador incorporado, por lo que puedes recorrer su contenido con un bucle for. Esto permite leer el archivo línea por línea sin cargar todo el archivo en memoria.

Ejemplo:


file = open('example.txt', 'r')
for line in file:
    print(line.strip())  
file.close()

Este método es más eficiente en términos de memoria para archivos grandes, ya que las líneas se leen una por una. Sin embargo, puede ser más complicado de manejar si necesitas regresar a una línea anterior o cambiar el orden de lectura.

Vamos a comparar nuevamente este enfoque y el anterior:

Uso del iterador Uso de la función readlines()

file = open('example.txt', 'r')

for line in file:
    print(line.strip())  
                            
file.close()
                

file = open('example.txt', 'r')
            
lines = file.readlines()
for line in lines:
    print(line.strip())  
                        
file.close()
                

Es más simple y rápido. Sin embargo, cuando trabajes en proyectos reales, a veces será más rápido cargar todos los datos en memoria de una vez y trabajar con ellos allí.

Los métodos readline() y readlines() se utilizan para leer líneas de un archivo, pero funcionan de manera diferente. readline() lee una línea a la vez, lo que permite controlar el proceso de lectura y no cargar todo el archivo en memoria. Esto es útil cuando necesitas procesar un archivo línea por línea o cuando el archivo es demasiado grande para cargarlo completamente en memoria.

readlines(), en cambio, lee todas las líneas del archivo de una vez y las devuelve como una lista. Este método es conveniente si necesitas obtener rápidamente todas las líneas del archivo para su procesamiento posterior. Sin embargo, consume más memoria, especialmente para archivos grandes, ya que todo el archivo se carga en memoria.

Dependiendo de la tarea, readline() puede ser preferible si es importante ahorrar memoria y tener control sobre el proceso de lectura, mientras que readlines() es conveniente cuando necesitas obtener todas las líneas del archivo de inmediato para su procesamiento.

2.4 Lectura de parte del archivo

Si el archivo es demasiado grande, puedes leerlo por partes. Al método read(n) se le puede pasar el parámetro n, que es la cantidad de caracteres que deseas leer. Si en el archivo hay menos caracteres que n, el método read() simplemente leerá el archivo hasta el final.

Ejemplo:


file = open('example.txt', 'r')
content = file.read(10)  # Lee los primeros 10 caracteres
print(content)
file.close()

Esto es conveniente para leer archivos grandes por partes o para procesar bloques de datos fijos. Pero este enfoque ignora la división del archivo por líneas: las líneas pueden romperse a la mitad.

2.5 Lectura del archivo línea por línea

Si por alguna razón no quieres usar el iterador, puedes leer el archivo línea por línea manualmente. Para esto, el objeto file tiene el método readline(). No confundir con readlines().

El método readline() lee una línea del archivo a la vez.

Ejemplo:


file = open('example.txt', 'r')
line = file.readline()
while line:
    print(line.strip())
    line = file.readline()
file.close()

En este ejemplo leemos el contenido del archivo línea por línea, hasta que la línea leída esté vacía.

Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION