Obtener el número de líneas en un archivo en Python

Syed Moiz Haider 30 enero 2023
  1. Obtener el número de líneas en un archivo en Python usando las funciones open() y sum()
  2. Obtener el número de líneas en un archivo en Python usando el método mmap.mmap()
  3. Obtenga el número de líneas en un archivo en Python usando el método file.read()
Obtener el número de líneas en un archivo en Python

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)
Syed Moiz Haider avatar Syed Moiz Haider avatar

Syed Moiz is an experienced and versatile technical content creator. He is a computer scientist by profession. Having a sound grip on technical areas of programming languages, he is actively contributing to solving programming problems and training fledglings.

LinkedIn

Artículo relacionado - Python File