Lavorare con i file
Nelle sezioni precedenti abbiamo visto come leggere e scrivere i dati all’interno di un file, ma esistono alcune accortezze da seguire. Abbiamo visto che è importante chiudere sempre il file su cui stiamo lavorando durante l’esecuzione del programma.
Ma se qualcosa va sbagliato? Se si genera un’eccezione non gestita, l’esecuzione del programma si interrompe e il file resta aperto?
Per ovviare a tale problema abbiamo visto nelle prime sezioni di questa parte del corso che cosa sono le eccezioni e come gestirle. Allora è chiaro che per lavorare con i file è necessario utilizzare un costrutto try-except.
Quindi il modo più pulito e sicuro per lavorare con i file è il seguente:
try:
file = open("prova.txt", "a")
file.write("Questo è il nuovo testo\n")
finally:
file.close()
In questo modo comunque vada, saremo sicuri che il file venga chiuso (un buon esempio per capire l’utilità di finally).
Un modo alternativo, meno usato, di lavorare con i file è utilizzando la clausola with. Questo comando permette di creare una variabile temporanea e ad essa fare riferimento all’interno del blocco per eseguire tutti i metodi. Alla fine del costrutto with, la variabile viene distrutta, anche nel caso avvenga una eccezione.
with variabile as f:
blocco with
Nel caso dei file quindi questo costrutto ci potrebbe essere molto utile:
with open("prova.txt","w") as f:
file.write("Questo è il nuovo testo\n")
⇐ Vai a Lezione 4.8 – Scrivere su file