
I file in Python
In questa lezione del corso Python ti spiego come utilizzare i file.
Cosa sono i file? I file sono come contenitori digitali in cui puoi memorizzare informazioni come testi, immagini o suoni. A differenza delle variabili in memoria, i file vengono salvati sul disco fisso del computer. Quindi, una volta scritti, puoi riaprirli e leggere le informazioni contenute nei file anche alla riaccensione del computer.
Nel linguaggio Python i file sono gestiti come oggetti su cui puoi eseguire operazioni, come leggere, scrivere e modificare.
Ecco una panoramica di base su come lavorare con i file in Python.
L'apertura di un file
Per aprire un file in Python, si utilizza la funzione open().
Questa funzione restituisce un oggetto file (file object) che ti permette di interagire con un file fisico (reale) nel file-system del tuo computer.
Ecco un esempio pratico.
file = open("test.txt")
Questo comando apre il file in modalità lettura, che è la modalità predefinita
Gli attributi dell'oggetto file ti forniscono diverse informazioni (nome del file, codifica dei caratteri, ecc.) e alcuni metodi per leggere, scrivere o modificare il suo contenuto.
Tra questi, sono molto importanti i metodi read(), readlines(), write() e close().
La scrittura su un file
Per scrivere su un file, devi aprirlo il file in modalità scrittura utilizzando 'w' (writing mode) come secondo parametro in open().
Ad esempio:
file = open("test.txt", 'w')
Questo comando apre il file in modalità scrittura.
Una volta aperto puoi scrivere i record dentro il file tramite il metodo write().
file.write("Hello world!")
Questa istruzione aggiunge il record "Hello world!" nel file.
Ripeti il metodo write() per ogni record che vuoi aggiungere al file.
Al termine di ogni record viene aggiunto automaticamente una interruzione di linea \n detta "newline". Si tratta di un carattere di controllo che indica a Python la fine del record.
Quando hai finito, ricordati di chiudere il file tramite il metodo close().
file.close()
In questo modo Python elimina il file-object dalla memoria e svincola il file reale dalle operazioni di scrittura.
Come aggiungere record a un file esistente. La modalità in scrittura "w" è utile per creare nuovi file. Se lo utilizzi per scrivere record su file già esistenti, Python sovrascrive i contenuti precedenti. Se vuoi aggiungere dei record a un file già esistente devi aprire il file in modalità "append" indicando "a" come secondo parametro del metodo open.
file = open("test.txt", 'a')
file.write("Hello world!")
file.close()
In questo caso Python aggiunge il nuovo record in coda al file senza sovrascrivere i record esistenti.
La lettura di un file
Per leggere il contenuto di un file, puoi utilizzare il metodo read().
Ad esempio, per prima cosa devi aprire il file in lettura tramite il metodo open() indicando "r" (reading mode) come secondo parametro.
file = open("test.txt", 'r')
Puoi anche non indicare il secondo parametro, in quanto il metodo open() utilizza di default la modalità in lettura.
Una volta aperto il file in modalità lettura, puoi leggere il contenuto di ogni singolo record tramite il metodo read()
record = file.read()
Quest'ultima istruzione legge il contenuto di un record e lo assegna alla variabile "record".
Ripeti il metodo read() per leggere gli altri record oppure utilizza un ciclo for per leggere tutte le righe del file.
- for line in file:
- print(line, end='')
In alternativa al metodo read(), puoi utilizzare il metodo readlines()
lines = file.readlines()
Questo metodo ti restituisce una lista con tutti i record del file con una sola operazione.
Quando il metodo read() raggiunge la fine del file, restituisce una stringa vuota.
Una volta concluse le operazioni di lettura, ricordati di chiudere il file con il metodo close().
file.close()
La chiusura di un file
È molto importante chiudere sempre i file dopo aver finito di lavorarci sopra.
Questo si fa utilizzando il metodo close().
- file = open("test.txt")
- print(file.read())
- file.close()
In alternativa, puoi usare la parola chiave with che chiude automaticamente il file una volta terminato il blocco di codice.
Questo rende il codice più pulito e gestisce la chiusura del file anche in caso di errori.
- with open("test.txt") as file:
- print(file.read())
In quest'ultimo caso non occorre utilizzare il metodo close() perché il file viene chiuso automaticamente da Python dopo aver eseguito il blocco di codice dentro la chiave with.
Ricorda di inserire il blocco di codice con un rientro a destra rispetto alla parola chiave with, perché Python utilizza l'indentazione per identificare i blocchi di codice.
Questi sono i concetti di base che ti permettono di lavorare con i file in Python.
Ci sono molte altre operazioni che puoi fare sui file, come leggere o scrivere file binari, ecc. Li vedremo insieme nelle prossime lezioni.