Dans certains cas, lorsque nous écrivons de grands programmes, nous pouvons oublier de fermer les fichiers. Les ouvrir et les fermer manuellement devient rapidement répétitif. Pour éviter ce problème, nous pouvons utiliser l'instruction with pour ouvrir et fermer automatiquement le fichier dès que le programme sort du bloc with :
with open('document.txt') as f: # Auparavant f = open('document.txt')
print(f.read())
print('Done!')
Le mot-clé as est utilisé pour créer un alias. Dans cet exemple, nous créons un alias f qui fait référence à open('document.txt').
Remarquez qu'il n'y a pas d'appels à f.open() ou f.close(). Tout est géré automatiquement. Dès que le programme entre dans le bloc with open(), le fichier document.txt est ouvert, et dès qu'il sort du bloc with, le fichier est fermé. Ainsi, lorsque le programme atteint l'instruction print('Done!'), le fichier a déjà été fermé.
C'est la manière préférée de travailler avec les fichiers plutôt que de les ouvrir et les fermer manuellement à chaque fois avec .open() et .close().
Défi
On vous demande de multiplier deux nombres situés dans le fichier numbers.txt sur des lignes séparées.
La sortie du programme doit contenir un seul entier : le produit des deux nombres.