Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich Strg-C-Interrupts (SIGINT) in Python ordnungsgemäß behandeln?

Wie kann ich Strg-C-Interrupts (SIGINT) in Python ordnungsgemäß behandeln?

Linda Hamilton
Linda HamiltonOriginal
2024-12-18 12:00:18211Durchsuche

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

Umgang mit SIGINT-Signalen in Python

In Python können Sie auf SIGINT-Signale reagieren (erzeugt durch Drücken von Strg C) mithilfe der signal.signal-Funktion. Diese Funktion registriert eine Handlerfunktion, die ausgeführt wird, wenn das angegebene Signal empfangen wird. Hier ist ein Beispiel, das zeigt, wie die gleiche Funktionalität wie mit dem bereitgestellten Perl-Code erreicht wird:

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()
Im obigen Code:

    signal_handler ist die registrierte Handlerfunktion. Wenn das SIGINT-Signal empfangen wird, wird diese Funktion aufgerufen und gibt eine Meldung aus, die angibt, dass
  • Strg C gedrückt wurde. Anschließend wird das Skript beendet.
  • signal.signal registriert die signal_handler-Funktion als Handler für SIGINT.
  • print('Press Strg C') druckt eine Meldung an die Konsole, in der der Benutzer zum Drücken aufgefordert wird
  • Strg C.
  • signal.pause() tritt in die Ereignisschleife ein und wartet auf die Zustellung von Signalen. Wenn SIGINT empfangen wird, wird die signal_handler-Funktion ausgeführt und das Skript beendet.
Dieser Code bietet eine effektive Möglichkeit, SIGINT-Signale in Python ordnungsgemäß zu verarbeiten und Bereinigungsaktionen durchzuführen, bevor das Skript beendet wird.

Das obige ist der detaillierte Inhalt vonWie kann ich Strg-C-Interrupts (SIGINT) in Python ordnungsgemäß behandeln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn