HOWTO · Python
Obtener el número de líneas en un archivo en Python
Este tutorial explica cómo obtener el número total de líneas en un archivo en Python.
En esta página
Este tutorial demostrará varios métodos para obtener el número total de líneas en un archivo en Python. Para obtener el número total de líneas de un archivo, primero necesitamos leer los datos del archivo en un búfer, y podemos hacerlo cargando el archivo completo de una vez o leyendo los datos en pequeños fragmentos si el tamaño del archivo es grande.
Veremos cómo podemos implementar ambos enfoques utilizando varios métodos en Python, que se explican a continuación con un código de ejemplo:
Obtener el número de líneas en un archivo en Python usando las funciones open() y sum()
Una forma sencilla de obtener el número de líneas en un archivo es iterando a través de cada línea del objeto de archivo devuelto por la función open().
La función open(file, mode) toma file como entrada y devuelve un objeto de archivo como salida. Un file es un objeto similar a una ruta que puede ser una cadena o un objeto de bytes y contiene la ruta del archivo. El mode representa el modo en el que queremos abrir el archivo, como leer, escribir, añadir modo, etc.
El siguiente código de ejemplo demuestra cómo usar el bucle for para obtener el número de líneas en un archivo en Python.
with open("myFolder/myfile.txt") as myfile:
total_lines = sum(1 for line in myfile)
print(total_lines)
Obtener el número de líneas en un archivo en Python usando el método mmap.mmap()
El método mmap.mmap(fileno, length) asigna el número de bytes de length del archivo especificado por el fileno y devuelve un objeto mmap. Si el valor de length es 0, la longitud máxima del mapa será igual al tamaño del archivo.
Podemos usar el objeto mmap devuelto por el método mmap.mmap() y luego usar el método mm.readline() para acceder a las líneas hasta llegar al final del archivo. Como queremos cargar el archivo completo, pasaremos 0 como argumento de length.
Código de ejemplo:
import mmap
with open("myFolder/myfile.txt", "r+") as myfile:
mm = mmap.mmap(myfile.fileno(), 0)
total_lines = 0
while mm.readline():
total_lines += 1
print(total_lines)
Obtenga el número de líneas en un archivo en Python usando el método file.read()
Si el tamaño del archivo es enorme y necesitamos una forma rápida de leer el archivo en trozos pequeños, podemos usar el método file.read() para leer los datos como un array de bytes en un búfer con el tamaño especificado.
El siguiente código de ejemplo demuestra cómo leer los datos del archivo en un búfer usando el método file.read() y luego iterar a través de él para obtener el número de líneas:
lines = 0
size = 1024 * 1024
with open(r"C:\test\file.txt", "r+") as myfile:
read_file = myfile.read
buffer = read_file(size)
while buffer:
lines += buffer.count("\n")
buffer = read_file(size)
if lines != 0:
lines += 1
print(lines)