Une recherche sur la façon d'attraper Ctrl-C (SIGINT) en Python arrive souvent en utilisant le module signal
, mais c'est un CONSEIL qui facilite les choses.
En conclusion, vous pouvez intercepter l'exception KeyboardInterrupt
.
Code lors de l'utilisation de KeyboardInterrupt
:
try:
while True: #Certains traitements lourds(Pour ou pendant un moment. .. ..)
pass #Ici, Ctrl-Écrivez le processus que vous souhaitez arrêter avec C
except KeyboardInterrupt:
# Ctrl-J'ai attrapé C!
# print('interrupted!')
pass #Si vous avez besoin d'un nettoyage spécial, écrivez ici
#Sys si vous tuez le programme à ce stade.sortie
#Tout ce que vous avez à faire est d'écrire le traitement normal, mais Ctrl-Notez que ce sont de très mauvaises manières de presser C et de continuer le traitement.
Strictement parlant, KeyboardInterrupt
ne semble pas attraper SIGINT pour les travaux d'arrière-plan qui sont détachés du shell, mais je pense qu'il est normal d'utiliser KeyboardInterrupt
d'abord dans des situations normales.
(Référence: https://stackoverflow.com/questions/40775054/capturing-sigint-using-keyboardinterrupt-exception-works-in-terminal-not-in-scr/40785230#40785230)
Recommended Posts