Fermer le fichier sûrement
À la page précédente, vous écriviez close vous-même. Si le programme s'arrêtait avant cette ligne, le fichier pouvait rester ouvert. with s'en charge : il ferme le fichier dès que les lignes indentées sont terminées, et même si l'une d'elles s'interrompt en route.
with open("plate.txt", "w", encoding="utf-8") as plate:
plate.write("bread\n")
print("saved")
À l'écran, seul saved apparaît. bread se trouve dans plate.txt, pas à l'écran. write s'est exécuté tant que le fichier était ouvert. Puis l'indentation a pris fin, le fichier s'est fermé, et c'est seulement après que print s'est exécuté. Il n'y a pas de close dans ce programme : n'en ajoutez ni après print, ni dans l'indentation. Le nom plate désigne le fichier ouvert, mais seulement jusqu'à la fin de l'indentation. encoding="utf-8" enregistre les lettres sous forme de texte, et w efface toujours ce que le fichier contenait avant.
La ligne write est indentée sous with : c'est cette indentation qui la met à l'intérieur. print("saved") n'est pas indenté, il est donc à l'extérieur, et ne s'exécute que si l'intérieur va jusqu'au bout.
Si vous écrivez 1 / 0 avec cette même indentation, le programme s'arrête et saved n'est pas écrit. Le fichier se ferme pourtant : en quittant l'indentation, il est fermé avant que le programme ne s'achève sur cet arrêt. Cette ligne ne figure pas dans le programme de cette page.
La page suivante porte sur le chemin du fichier. Ici, on se contente de le fermer.
Le fichier se ferme à la fin de l'indentation
À l'écran : saved. Dans plate.txt : bread. Pas de close ici. Si une ligne à l'intérieur de l'indentation s'arrête, le fichier se ferme quand même et saved n'est pas écrit. La page suivante traite du chemin du fichier.
🧠 Testez Vos Connaissances
Testez Vos Connaissances
Mettez-vous au défi avec ce quiz interactif et voyez à quel point vous comprenez le sujet
📝 Instructions
- Lisez chaque question attentivement
- Sélectionnez la meilleure réponse pour chaque question
- Vous pouvez refaire le quiz autant de fois que vous le souhaitez
- Votre progression sera affichée en haut