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

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

Linda Hamilton
Libérer: 2024-12-18 12:00:18
original
205 Les gens l'ont consulté

How Can I Gracefully Handle Ctrl C Interrupts (SIGINT) in Python?

Gestion des signaux SIGINT en Python

En Python, vous pouvez répondre aux signaux SIGINT (générés en appuyant sur Ctrl C) en utilisant la fonction signal.signal. Cette fonction enregistre une fonction de gestionnaire qui sera exécutée lorsque le signal spécifié sera reçu. Voici un exemple montrant comment obtenir la même fonctionnalité que le code Perl fourni :

import signal
import sys

def signal_handler(sig, frame):
    print('You pressed Ctrl+C!')
    sys.exit(0)

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

Dans le code ci-dessus :

  • signal_handler est la fonction de gestionnaire enregistrée. Lorsque le signal SIGINT est reçu, cette fonction est appelée et imprime un message pour indiquer que Ctrl C a été enfoncé. Il quitte ensuite le script.
  • signal.signal enregistre la fonction signal_handler en tant que gestionnaire de SIGINT.
  • print('Press Ctrl C') imprime un message sur la console demandant à l'utilisateur d'appuyer sur Ctrl C.
  • signal.pause() entre dans la boucle d'événements et attend que les signaux soient délivrés. Lorsque SIGINT est reçu, la fonction signal_handler est exécutée et le script se termine.

Ce code fournit un moyen efficace de gérer gracieusement les signaux SIGINT en Python et d'effectuer des actions de nettoyage avant de quitter le script.

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal