Maison > développement back-end > Tutoriel Python > Comment puis-je gérer gracieusement les interruptions Ctrl C (SIGINT) dans mon programme Python ?

Comment puis-je gérer gracieusement les interruptions Ctrl C (SIGINT) dans mon programme Python ?

DDD
Libérer: 2024-12-14 11:23:18
original
540 Les gens l'ont consulté

How Can I Gracefully Handle Ctrl C Interruptions (SIGINT) in My Python Program?

Capturer le signal SIGINT en Python

En Python, la gestion de signaux comme SIGINT (générés en appuyant sur Ctrl C) peut être réalisée via le signal module. Ce module fournit une API complète pour gérer les signaux dans un programme Python.

Pour capturer le signal SIGINT et effectuer une action de nettoyage personnalisée, suivez ces étapes :

import signal
import sys

def signal_handler(sig, frame):
    print('You pressed Ctrl+C!')
    # Perform any necessary cleanup tasks هنا
    sys.exit(0)

signal.signal(signal.SIGINT, signal_handler)
print('Press Ctrl+C')
signal.pause()
Copier après la connexion

Dans ce script, le La fonction signal_handler est définie comme le gestionnaire du signal SIGINT. Lorsque Ctrl C est enfoncé, cette fonction est invoquée, qui imprime un message pour indiquer que le signal a été reçu. Vous pouvez ensuite inclure tout code de nettoyage nécessaire dans cette fonction, comme la fermeture des connexions à la base de données ou la fin des processus enfants.

La fonction signal.signal est utilisée pour enregistrer la fonction signal_handler en tant que gestionnaire de SIGINT. La fonction signal.pause() suspend l'exécution du script jusqu'à ce qu'un signal soit reçu, suspendant toutes les autres opérations jusqu'à ce que l'utilisateur appuie sur Ctrl C.

Cette approche vous permet de gérer gracieusement SIGINT dans votre script Python, en exécutant tâches de nettoyage personnalisées avant de terminer le programme. Pour plus d'informations et de documentation, reportez-vous aux liens fournis dans le code.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal