
Il metodo read() in Python
Il metodo read() in Python ti permette di leggere il contenuto di un file, portandolo così nella memoria del computer, dove puoi manipolarlo come preferisci.
file.read()
Questo metodo legge l'intero contenuto del file aperto in modalità di lettura 'r' e restituisce una stringa.
Quando raggiunge l'ultimo record del file, il metodo read() restituisce una stringa vuota.
Se non viene specificato diversamente, le stringhe sono in formato text (testo).
Il metodo read() funziona anche sui file binari. Quindi, se vuoi leggere il contenuto di un file aperto in modalità 'rb' (lettura binaria) puoi farlo usando il metodo read() sull'oggetto. Non cambia nulla. In questo caso, però, il metodo restituisce la stringa in formato byte.
Ti faccio un esempio pratico.
Prima di poter leggere un file, devi aprirlo tramite la funzione open() specificando la modalità 'r' per la lettura (read).
file = open('esempio.txt', 'r')
Una volta che il file è aperto, puoi utilizzare il metodo read() per leggerne il contenuto.
contenuto = file.read()
Senza argomenti, il metodo read() leggerà tutto il contenuto del file fino alla fine.
Il contenuto viene salvato in una stringa di testo che puoi gestire come vuoi. Ad esempio, puoi stamparla a video tramite l'istruzione print(),
print(contenuto)
Quando hai finito di leggere il file, è buona norma chiuderlo con il metodo close().
file.close()
In alternativa, Python ti offre anche una sintassi più pulita per assicurarti che i file vengano chiusi correttamente dopo l'uso tramite il blocco with. Così non dovrai ricordarti di chiudere il file manualmente.
with open('esempio.txt', 'r') as file:
contenuto = file.read()
print(contenuto)
Come leggere solo una parte del file ma non tutto?
Se i file sono molto grandi, potresti voler leggere solo una parte per risparmiare memoria.
Il metodo read() accetta un argomento numerico tra le parentesi tonde in cui puoi indicare quanti byte leggere.
Ad esempio, in questo caso read(100) legge solo i primi 100 caratteri (byte) del file.
file = open('esempio.txt', 'r')
contenuto_parciale = file.read(100)
print(contenuto)
file.close()
Per leggere altri 100 caratteri del file dovresti eseguire un'altra volta l'istruzione read()
file = open('esempio.txt', 'r')
contenuto_parciale = file.read(100)
print(contenuto)
contenuto_parciale = file.read(100)
print(contenuto)
file.close()
La lettura per record per record
Un'altra pratica comune è leggere il contenuto del file riga per riga, specialmente se il file è un testo composto da diverse linee (record).
In questo caso, devi utilizzare il metodo readline() che è appositamente pensato per leggere una riga del file.
file = open('esempio.txt', 'r')
prima_riga = file.readline()
print(prima_riga)
file.close()
Anche in questo caso per leggere più righe, devi usare più volte l'istruzione readline().
Ad esempio, per leggere i primi due record del file devi scrivere:
file = open('esempio.txt', 'r')
# legge il primo record
prima_riga = file.readline()
print(prima_riga)
# legge il secondo record
seconda_riga = file.readline()
print(seconda_riga)
file.close()
In alternativa, puoi usare il metodo readlines() per ottenere la lista di tutte le righe del file.
file = open('esempio.txt', 'r')
tutte_le_righe = file.readlines()
print(tutte_le_righe)
file.close()
Questo ti permette di leggere tutti i record in una sola volta.
In questo modo puoi accedere ai singoli record del file che ti interessano, senza doverli leggere una alla volta.
Ad esempio, per accedere all'ultimo record del file puoi scrivere:
with open('diario.txt', 'r') as file:
righe = file.readlines()
ultima_riga = righe[-1]
print("Ultimo inserimento nel diario:", ultima_riga)
In questo modo, visualizzi solo l'ultima riga del tuo diario, mostrando l'ultima attività che hai registrato.