Leer un archivo línea por línea en Python

requisitos previos: 

Python proporciona funciones integradas para crear, escribir y leer archivos. Hay dos tipos de archivos que se pueden manejar en python, archivos de texto normales y archivos binarios (escritos en lenguaje binario, 0 y 1). En este artículo, vamos a estudiar la lectura línea por línea de un archivo.

Método 1: leer un archivo línea por línea usando readlines()

readlines() se usa para leer todas las líneas de una sola vez y luego devolverlas como cada línea, un elemento de string en una lista. Esta función se puede usar para archivos pequeños, ya que lee todo el contenido del archivo en la memoria y luego lo divide en líneas separadas. Podemos iterar sobre la lista y quitar el carácter de nueva línea ‘\n’ usando la función strip().

Ejemplo: 

Python3

# Python code to
# demonstrate readlines()
  
L = ["Geeks\n", "for\n", "Geeks\n"]
  
# writing to file
file1 = open('myfile.txt', 'w')
file1.writelines(L)
file1.close()
  
# Using readlines()
file1 = open('myfile.txt', 'r')
Lines = file1.readlines()
  
count = 0
# Strips the newline character
for line in Lines:
    count += 1
    print("Line{}: {}".format(count, line.strip()))

Producción: 
 

Line1: Geeks
Line2: for
Line3: Geeks

Método 2: Leer un archivo línea por línea usando readline()

La función readline() lee una línea del archivo y la devuelve en forma de string. Toma un parámetro n, que especifica el número máximo de bytes que se leerán. Sin embargo, no lee más de una línea, incluso si n excede la longitud de la línea. Será eficiente al leer un archivo grande porque en lugar de obtener todos los datos de una sola vez, obtiene línea por línea. readline() devuelve la siguiente línea del archivo que contiene un carácter de nueva línea al final. Además, si se llega al final del archivo, devolverá una string vacía.

Python-Foundation-Course

Ejemplo:

Python3

# Python program to
# demonstrate readline()
  
L = ["Geeks\n", "for\n", "Geeks\n"]
  
# Writing to a file
file1 = open('myfile.txt', 'w')
file1.writelines((L))
file1.close()
  
# Using readline()
file1 = open('myfile.txt', 'r')
count = 0
  
while True:
    count += 1
  
    # Get next line from file
    line = file1.readline()
  
    # if line is empty
    # end of file is reached
    if not line:
        break
    print("Line{}: {}".format(count, line.strip()))
  
file1.close()

Producción: 

Line1 Geeks
Line2 for
Line3 Geeks

Método 3: leer un archivo línea por línea usando for loop

La función open() devuelve un objeto iterable al abrir un archivo. Esta forma final de leer un archivo línea por línea incluye iterar sobre un objeto de archivo en un bucle. Al hacer esto, estamos aprovechando una función integrada de Python que nos permite iterar sobre el objeto de archivo implícitamente usando un bucle for en combinación con el uso del objeto iterable. Este enfoque requiere menos líneas de código, que siempre es la mejor práctica que vale la pena seguir.

Ejemplo:

Python3

# Python program to
# demonstrate reading files
# using for loop
  
L = ["Geeks\n", "for\n", "Geeks\n"]
  
# Writing to file
file1 = open('myfile.txt', 'w')
file1.writelines(L)
file1.close()
  
# Opening file
file1 = open('myfile.txt', 'r')
count = 0
  
# Using for loop
print("Using for loop")
for line in file1:
    count += 1
    print("Line{}: {}".format(count, line.strip()))
  
# Closing files
file1.close()

Producción:

Using for loop
Line1: Geeks
Line2: for
Line3: Geeks

Método 4: Lea un archivo línea por línea usando for bucle y comprensión de listas

Ejemplo

Python3

with open('myfile.txt') as f:
    lines = [line for line in f]
  
print(lines)
  
# removing the new line characters
with open('myfile.txt') as f:
    lines = [line.rstrip() for line in f]
  
print(lines)

Producción:

['Geeks\n', 'For\n', 'Geeks']
['Geeks', 'For', 'Geeks']

con declaración

En los enfoques anteriores, cada vez que se abre el archivo, es necesario cerrarlo explícitamente. Si uno olvida cerrar el archivo, puede introducir varios errores en el código, es decir, muchos cambios en los archivos no entran en vigencia hasta que el archivo se cierra correctamente. Para evitar esto, se puede usar la instrucción with. La declaración With en Python se usa en el manejo de excepciones para hacer que el código sea más limpio y mucho más legible. Simplifica la gestión de recursos comunes como flujos de archivos. Observe el siguiente ejemplo de código sobre cómo el uso de la instrucción with hace que el código sea más limpio. No es necesario llamar a file.close() cuando se usa con la declaración. El con la propia declaración asegura la adecuada adquisición y liberación de recursos.

Ejemplo:

Python3

# Python program to
# demonstrate with
# statement
  
L = ["Geeks\n", "for\n", "Geeks\n"]
  
  
# Writing to file
with open("myfile.txt", "w") as fp:
    fp.writelines(L)
  
  
# using readlines()
count = 0
print("Using readlines()")
  
with open("myfile.txt") as fp:
    Lines = fp.readlines()
    for line in Lines:
        count += 1
        print("Line{}: {}".format(count, line.strip()))
  
  
# Using readline()
count = 0
print("\nUsing readline()")
  
with open("myfile.txt") as fp:
    while True:
        count += 1
        line = fp.readline()
  
        if not line:
            break
        print("Line{}: {}".format(count, line.strip()))
  
  
# Using for loop
count = 0
print("\nUsing for loop")
  
with open("myfile.txt") as fp:
    for line in fp:
        count += 1
        print("Line{}: {}".format(count, line.strip()))

Producción: 

Using readlines()
Line1: Geeks
Line2: for
Line3: Geeks

Using readline()
Line1: Geeks
Line2: for
Line3: Geeks

Using for loop
Line1: Geeks
Line2: for
Line3: Geeks

Publicación traducida automáticamente

Artículo escrito por nikhilaggarwal3 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *