In alcuni casi, quando scriviamo programmi grandi, potremmo dimenticare di chiudere i file. Aprirli e chiuderli manualmente sembra un lavoro ripetitivo. Per evitare questo problema, possiamo utilizzare le istruzioni with per aprire e chiudere automaticamente il file non appena il programma esce dal blocco with:
with open('document.txt') as f: # In precedenza f = open('document.txt')
print(f.read())
print('Done!')
La parola chiave as viene utilizzata per creare un alias. In questo esempio, creiamo un alias f che si riferisce a open('document.txt').
Nota che non ci sono chiamate a f.open() o f.close(). Questo è gestito automaticamente. Non appena il programma entra nel blocco with open(), il file document.txt viene aperto e non appena il programma esce dal corpo del blocco with, il file viene chiuso. Quindi, quando il programma raggiunge l'istruzione print('Done!'), il file è già stato chiuso.
Questo è il modo preferito di lavorare con i file rispetto ad aprirli con .open() e chiuderli con .close() ogni volta.
Sfida
Ti viene chiesto di moltiplicare due numeri che si trovano nel file numbers.txt su righe separate.
L'output del programma dovrebbe contenere un singolo intero - il prodotto dei due numeri.