Ottieni il numero di linee in un file in Python
-
Ottieni il numero di linee in un file in Python usando le funzioni
open()
esum()
-
Ottieni il numero di linee in un file in Python usando il metodo
mmap.mmap()
-
Ottieni il numero di linee in un file in Python usando il metodo
file.read()
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 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