... | ... | @@ -57,7 +57,7 @@ Pratique recommandée pour ouvrir un fichier : "**with** open(nom_fichier, 'r') |
|
|
|
|
|
:baby: Si vous débutez : retenez que cette syntaxe est fortement recommandées ; si vous utilisez une autre façon de faire vous devrez bien penser à fermer le fichier à la fin.
|
|
|
:older_man: Si vous être plus avancé,retenez la notion de **context manager**
|
|
|
=> **with** introduit un **"context manager"** qui déclenche une action définie par la méthode dunder__start__ de la classe avant la première instruction, et une dernière action définie par __end__ à la fin. Ici, l'action finale est la fermeture du fichier, ce qui garantit que le fichier se fermera à la fin du bloc d'instructions, quoi qu'il arrive. Cela rappelle les décorateurs, sauf qu'ici on peut choisir d'appeler la classe avec un context manager ou pas, alors que les décorateurs modifient définitivement la fonction (surcharge).
|
|
|
=> **with** introduit un **"context manager"** qui déclenche une action définie par la méthode dunder__start__ de la classe avant la première instruction, et une dernière action définie par la dunder__end__ à la fin. Ici, l'action finale est la fermeture du fichier, ce qui garantit que le fichier se fermera à la fin du bloc d'instructions, quoi qu'il arrive. Cela rappelle les décorateurs, sauf qu'ici on peut choisir d'appeler la classe avec un context manager ou pas, alors que les décorateurs modifient définitivement la fonction (surcharge).
|
|
|
On peut par exemple définir un context manager pour mesurer le temps d'exécution d'une fonction (au début : on note l'heure ; à la fin : on note l'heure et on calcule le délai).
|
|
|
|
|
|
Ensuite, on va lire les lignes avec alias_du_fichier.readline().
|
... | ... | |