En informática siempre hay varios caminos para llegar al mismo resultado y leer un archivo linea a linea no es una excepción, sin embargo, algunos caminos facilitan la marcha.

readlines()

Devuelve una lista con todas las lineas del archivo. Sin duda cómoda y sencilla de implementar:

f = open("archivo.txt", "r")
lineas = f.readlines()
f.close()

Por el lado positivo, es sencillo y limpio. Lo menos bueno, con archivos grandes utiliza mucha RAM, en el mejor de los casos tardará mucho, en el peor dará error.

readline()

Devuelve una linea cada vez que se invoca.

f = open("archivo.txt", "r")
while(True):
    linea = f.readline()
    print(linea)
    if not linea:
        break
f.close()

Ventajas: no hay problemas de memoria, puede abrir archivos enormes sin problema (testeado con archivos de 3Gb). Inconvenientes, quizá no es tan limpio y el control de EOF es poco ortodoxo para mi gusto «if not line:«.

utilizando la iteración propia de Python

f = open("archivo.txt", "r")
for linea in f:
    print(linea)
fh.close()

Ventajas, sencillez y claridad de código y eficiencia al utilizar la memoria.

Yo me decanto por las dos últimas según encaje en el código en cada momento, aunque al final es cosa de cada cual, es lo bueno de tener opciones.

Quizas te interesen estas entradas:

Con python puedes hacer cualquier cosa. ¿Sientes curiosidad?, echa un vistazo aquí

Saludos y feliz código!

3 comentarios sobre «Como leer un archivo de texto linea a linea desde Python»

  1. kenneth

    Como podria contar las vocales que hay en las lineas de un archivo?

    1. Anónimo

      Usa la funcion len

  2. Javier

    Hola.

    Tratando de usar tu código en una función, me devuelve que hay un fallo de sintaxis y la verdad es que no veo cual puede ser el fallo…

    def leer_archivo(nombre_archivo)
    archivo = open(nombre_archivo, «r»)
    for linea in archivo:
    print(linea)
    archivo.close()

Deja tu comentario