In questa lezione studieremo il metodo readline di Python necessario per la lettura di un file di testo.
Questo metodo restituisce una riga di caratteri, incluso il carattere di fine riga, ovvero il carattere \n.
readline Python – primo esempio
Facciamo un primo esempio su un file rubrica che contiene i seguenti contatti di esempio:
Nome: cristina – Telefono: 3567
Nome: coding – Telefono: 34789
Apriamo il file utilizzando la funzione open, specificando la modalità di lettura (r). Dopo applicahiamo il metodo readline() di Python e proviamo a stampare il testo letto.
f = open('rubrica.txt', 'r')
testo = f.readline()
print(testo)
f.close()
Il seguente codice stamperà solo la prima riga: Nome: cristina – Telefono: 3567.
Come possiamo notare l’esecuzione di readline() produce la lettura fino al carattere di fine riga, ovvero \n.
In definitiva questo metodo utilizza un cursore che rappresenta un indice numerico che parte da 0 e che si incrementa di 1 ad ogni carattere letto.
Se provassimo ad eseguire nuovamente readline() leggeremo la seconda riga, in quanto l’indice è stato incrementato.
f = open('rubrica.txt', 'r')
testo = f.readline()
print(testo)
testo = f.readline()
print(testo)
f.close()
Ma chiaramente questo codice per la lettura di un file di testo non è l’ideale. Proviamo ad utilizzare un ciclo.
readline Python – secondo esempio
Ragioniamo sul fatto che arresteremo la lettura quando incontreremo la stringa nulla, in quanto rappresenta la fine del file.
Implementiamo dunque una possibile soluzione:
f = open('rubrica.txt', 'r')
testo = f.readline()
while testo != "":
print(testo)
testo = f.readline()
f.close()
Notiamo che ciascun contatto della rubrica occuperà due righe in quanto la funzione print aggiunge un ulteriore carattere di fine riga.
Per evitare questo problema potremmo utilizzare la funzione print con il parametro end, in questo modo:
print(testo, end = ” “)
in alternativa si può utilizzare il metodo rstrip().
Ciclo for in
Un’alternativa all’utilizzo di readline in Python per poter leggere un file è il ciclo for in.
Vediamo un semplice esempio:
f = open('rubrica.txt', 'r')
for testo in f:
print(testo.rstrip())
f.close()
In definitiva stiamo trattando il file come se fosse semplicemente un elenco di stringhe.
Conclusioni
In questa lezione abbiamo studiato il metodo readline di Python per leggere i dati da un file di testo. Abbiamo anche visto che non è l’unico modo per poter leggere un file di testo.
Alcuni link utili
Indice tutorial sul linguaggio Python
1 – Introduzione al linguaggio Python
2 – Le variabili
3 – Operatori aritmetici e di assegnazione
4 – Stringhe
5 – Casting
6 – Input e print