Obtenha o número de linhas em um arquivo em Python

Syed Moiz Haider 30 janeiro 2023
  1. Obtenha o número de linhas em um arquivo em Python usando as funções open() e sum()
  2. Obtenha o número de linhas em um arquivo em Python usando o método mmap.mmap()
  3. Obtenha o número de linhas em um arquivo em Python usando o método file.read()
Obtenha o número de linhas em um arquivo em Python

Este tutorial demonstrará vários métodos para obter o número total de linhas em um arquivo em Python. Para obter o número total de linhas de um arquivo, primeiro precisamos ler os dados do arquivo em um buffer, e podemos fazer isso carregando o arquivo completo de uma vez ou lendo os dados em pequenos pedaços se o tamanho do arquivo for ampla.

Veremos como podemos implementar ambas as abordagens usando vários métodos em Python, que são explicados a seguir com o código de exemplo:

Obtenha o número de linhas em um arquivo em Python usando as funções open() e sum()

Uma maneira simples de obter o número de linhas em um arquivo é iterar cada linha do objeto de arquivo retornado pela função open().

A função open(file, mode) leva file como entrada e retorna um objeto de arquivo como saída. Um file é um objeto semelhante a um caminho que pode ser uma string ou um objeto bytes e contém o caminho do arquivo. O mode representa o modo que queremos abrir o arquivo, como ler, escrever, adicionar modo, etc.

O código de exemplo a seguir demonstra como usar o loop for para obter o número de linhas em um arquivo em Python.

with open("myFolder/myfile.txt") as myfile:
    total_lines = sum(1 for line in myfile)

print(total_lines)

Obtenha o número de linhas em um arquivo em Python usando o método mmap.mmap()

O método mmap.mmap(fileno, length) mapeia o número length de bytes do arquivo especificado pelo fileno e retorna um objeto mmap. Se o valor de length for 0, o comprimento máximo do mapa será igual ao tamanho do arquivo.

Podemos usar o objeto mmap retornado pelo método mmap.mmap() e então usar o método mm.readline() para acessar as linhas até chegarmos ao final do arquivo. Como queremos carregar o arquivo completo, passaremos 0 como o argumento length.

Código de exemplo:

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)

Obtenha o número de linhas em um arquivo em Python usando o método file.read()

Se o tamanho do arquivo for grande e precisarmos de uma maneira rápida de ler o arquivo em pequenos pedaços, podemos usar o método file.read() para ler os dados como um array de bytes em um buffer com o tamanho especificado.

O código de exemplo a seguir demonstra como ler os dados do arquivo em um buffer usando o método file.read() e, em seguida, iterar por ele para obter o número de linhas:

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

Artigo relacionado - Python File