Ottieni il numero di linee in un file in Python

Syed Moiz Haider 30 gennaio 2023
  1. Ottieni il numero di linee in un file in Python usando le funzioni open() e sum()
  2. Ottieni il numero di linee in un file in Python usando il metodo mmap.mmap()
  3. Ottieni il numero di linee in un file in Python usando il metodo file.read()
Ottieni il numero di linee in un file in Python

Questo tutorial mostrerà vari metodi per ottenere il numero totale di linee in un file in Python. Per ottenere il numero totale di linee di un file, dobbiamo prima leggere i dati del file in un buffer, e possiamo farlo caricando il file completo in una volta o leggere i dati in piccoli blocchi se la dimensione del file è grande.

Vedremo come implementare entrambi gli approcci utilizzando vari metodi in Python, che sono spiegati di seguito con un codice di esempio:

Ottieni il numero di linee in un file in Python usando le funzioni open() e sum()

Un modo semplice per ottenere il numero di linee in un file è scorrere ogni linea dell’oggetto file restituito dalla funzione open().

La funzione open(file, mode) accetta file come input e restituisce un oggetto file come output. Un file è un oggetto simile a un percorso che può essere un oggetto stringa o byte e contiene il percorso del file. La mode rappresenta la modalità in cui vogliamo aprire il file, come lettura, scrittura, modalità di aggiunta, ecc.

Il codice di esempio sotto mostra come usare il cicli for per ottenere il numero di linee in un file in Python.

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

print(total_lines)

Ottieni il numero di linee in un file in Python usando il metodo mmap.mmap()

Il metodo mmap.mmap(fileno, length) mappa il numero di byte length dal file specificato da fileno e restituisce un oggetto mmap. Se il valore di length è 0, la lunghezza massima della mappa sarà uguale alla dimensione del file.

Possiamo usare l’oggetto mmap restituito dal metodo mmap.mmap() e poi usare il metodo mm.readline() per accedere alle linee fino a raggiungere la fine del file. Dato che vogliamo caricare il file completo, passeremo 0 come argomento length.

Codice di esempio:

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)

Ottieni il numero di linee in un file in Python usando il metodo file.read()

Se la dimensione del file è enorme e abbiamo bisogno di un modo veloce per leggere il file in piccoli blocchi, possiamo usare il metodo file.read() per leggere i dati come un array di byte in un buffer con la dimensione specificata.

Il codice di esempio sotto mostra come leggere i dati del file in un buffer usando il metodo file.read() e poi iterare attraverso di esso per ottenere il numero di linee:

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

Articolo correlato - Python File