Python mette a disposizione metodi built-in per poter interagire con i file. In questo tutorial andiamo a scoprire come leggere un file di testo riga per riga in Python.

Aprire il file in lettura

Inanzitutto, per semplicità, posizioniamo il nostro script nella stessa cartella del file di testo, e accediamo al file in lettura utilizziamo il metodo open('file-prova.txt, 'r'):

file = open("file-prova.txt""r")

Leggere tutte le righe in una volta sola con readlines()

Dopodiché chiamiamo il metodo built-in  readlines(), che ci ritorna una lista di tutte le righe del file e iteriamo sulla lista per leggere riga per riga:

file = open("file-prova.txt""r")
lines = file.readlines()
print(lines)
file.close()

for line in lines:
print(line)

#output
['elephant man\n', 'mulholland drive\n', 'twin peaks\n']
elephant man

mulholland drive

twin peaks

in questo esempio, il metodo open() ritorna un oggetto che deve essere chiuso esplicitamente con il metodo close(), altrimenti si può andare incontro a diversi bug. é buona norma quindi accedere ad un file usando il with, che si occupa automaticamente di gestire e liberare le risorse aperte:

with open("file-prova.txt""r"as file
lines = file.readlines()
print(lines)

for line in lines:
print(line)

#output
['elephant man\n', 'mulholland drive\n', 'twin peaks\n']
elephant man

mulholland drive

twin peaks

Leggere file riga per riga con readline()

Nel caso dovessi leggere un file txt molto grosso conviene usare il metodo readline() in quanto  readlines() memorizza in una variabile tutte le righe del file e potrebbe provocare problemi di performance.

readline() ritorna la prossima riga del file e quando arriva alla fine restituisce una stringa vuota:

with open("file-prova.txt"as file
while True
line = file.readline() 
if not line: 
break
print(line.strip())

#output
elephant man
mulholland drive
twin peaks

In questo esempio utilizzo il ciclo while per continuare a leggere le righe fino a quando non si raggiunge la fine del file.


Condividi sui Social