Maison > développement back-end > Tutoriel Python > Comment puis-je gérer gracieusement les interruptions Ctrl C dans mes scripts Python ?

Comment puis-je gérer gracieusement les interruptions Ctrl C dans mes scripts Python ?

DDD
Libérer: 2024-12-17 14:58:10
original
891 Les gens l'ont consulté

How Can I Gracefully Handle Ctrl C Interrupts in My Python Scripts?

Gestion de SIGINT en Python : un guide détaillé

Lorsque vous travaillez avec des scripts Python qui incluent plusieurs processus et connexions à des bases de données, il est crucial de pouvoir pour gérer correctement les interruptions de l'utilisateur, telles que le signal SIGINT généré lorsque l'utilisateur appuie sur Ctrl C. Cet article fournit un guide complet pour capturer et répondre à SIGINT dans Python, vous permettant d'effectuer le nettoyage nécessaire avant de quitter le script.

Implémentation du gestionnaire SIGINT

Pour enregistrer votre gestionnaire pour le signal SIGINT, vous pouvez utiliser le signal. fonction de signal en Python. Voici un exemple d'extrait de code :

import signal
import sys

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

signal.signal(signal.SIGINT, signal_handler)
Copier après la connexion

Dans ce code, nous :

  1. Importons les modules nécessaires : signal et sys.
  2. Définissons une fonction de gestionnaire de signal (signal_handler) qui imprime un message et termine le script avec élégance.
  3. Enregistrez le gestionnaire de signal pour le Signal SIGINT à l'aide de signal.signal.

Capture du signal SIGINT

Une fois le gestionnaire de signal enregistré, vous pouvez capturer le signal SIGINT en appelant signal.pause (). Cette fonction bloquera le script jusqu'à ce qu'un signal soit reçu, qui dans ce cas serait l'entrée Ctrl C.

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

Notes supplémentaires

  • Le le code fourni est un exemple de base qui imprime un message et quitte le script. Vous pouvez modifier la fonction de gestionnaire de signal pour effectuer tout nettoyage ou finalisation nécessaire avant de quitter.
  • Une documentation plus détaillée sur le module de signal et la gestion du signal en Python peut être trouvée dans la documentation de la bibliothèque standard Python.

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