629 votes

Comment capturer SIGINT en Python ?

Je travaille sur un script python qui lance plusieurs processus et connexions de base de données. Chaque maintenant et puis j’ai envie de tuer le script avec un Ctrl + C signal et je voudrais faire un nettoyage. En Perl, je ferais ceci :

Comment dois-je faire l’analogue du présent en Python ?

928voto

Matt J Points 15475

Inscrivez votre gestionnaire avec `` comme ceci :

Code adapté d’ici.

Plus d’information sur `` vous trouverez ici.

193voto

rledley Points 828

Vous pouvez la traiter comme une exception (KeyboardInterrupt), comme les autres. Faire un nouveau fichier et exécutez-le à partir de votre shell avec le contenu suivant pour voir ce que je veux dire :

75voto

Udi Points 6298

Un gestionnaire de contexte :

Pour utiliser :

Gestionnaires d’imbriqués :

De là : https://gist.github.com/2907502

31voto

Jay Conrod Points 12375

Vous pouvez gérer les Ctrl-C en attrapant la `` exception. Vous pouvez implémenter n’importe quel code de nettoyage dans le gestionnaire d’exceptions.

28voto

sunqiang Points 4599

De la documentationde Python :

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X