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.
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