Comment pouvez-vous avoir une fonction ou quelque chose qui sera exécuté avant la fermeture de votre programme? J'ai un script qui fonctionnera constamment en arrière-plan, et j'en ai besoin pour enregistrer certaines données dans un fichier avant qu'il ne quitte. Existe-t-il une manière standard de procéder?
101
Réponses:
Découvrez le
atexit
module:http://docs.python.org/library/atexit.html
Par exemple, si je voulais imprimer un message lorsque mon application se terminait:
Sachez simplement que cela fonctionne très bien pour la terminaison normale du script, mais il ne sera pas appelé dans tous les cas (par exemple, des erreurs internes fatales).
la source
Note The exit function is not called when the program is killed by a signal, when a Python fatal internal error is detected, or when os._exit() is called
.Si vous voulez que quelque chose s'exécute toujours, même en cas d'erreurs, utilisez
try: finally:
comme ceci -Si vous souhaitez également gérer les exceptions, vous pouvez insérer un
except:
avant lefinally:
la source
Si vous arrêtez le script en levant un
KeyboardInterrupt
(par exemple en appuyant sur Ctrl-C), vous pouvez attraper cela comme une exception standard. Vous pouvez également attraperSystemExit
de la même manière.Je le mentionne juste pour que vous le sachiez; la «bonne» façon de faire ceci est le
atexit
module mentionné ci-dessus.la source