In diesem Artikel erfahren Sie, wie Sie SIGINT in Python abfangen und was Sie nach dem Abfangen tun müssen.
Nach dem Empfang des Signals führt das Signalmodul bestimmte Aktionen aus. Darüber hinaus können mit SIGINT auch Benutzerunterbrechungen über die Tastatur erfasst werden.
Erforderliche Module
Signalmodul
Der Begriff „Signal“ bezieht sich auf den Vorgang, durch den ein Programm Informationen vom Betriebssystem empfangen kann. Darüber hinaus werden Signale an Programme gesendet, wenn das Betriebssystem bestimmte Ereignisse erkennt. Das Signalmodul kann installiert werden, indem der folgende Befehl im Terminal ausgeführt wird -
pip install signal
Systemmodul
Das sys-Modul in Python bietet mehrere Funktionen und Variablen, um verschiedene Teile der Python-Laufumgebung zu ändern. Das sys-Modul kann mit dem folgenden Befehl installiert werden -
pip install os-sys
Zeitmodul
Das Zeitmodul von Python ermöglicht es Benutzern, die Zeit zu manipulieren und Informationen über die Zeit aufzuzeichnen. Das Zeitmodul ist normalerweise mit Python vorinstalliert, sodass es nicht installiert werden muss. Wenn nicht, können Sie es mit dem folgenden Befehl installieren -
pip install python-time
Lassen Sie uns Schritt für Schritt die Implementierung der SIGINT-Erfassung in Python vorstellen.
Schritt für Schritt Umsetzung
Schritt 1: Importieren Sie die Bibliothek
Zuerst müssen wir alle erforderlichen Bibliotheken mit dem Schlüsselwort import importieren. Dazu gehören die Signal-, Sys- und Sleep-Bibliotheken.
# importing signal and sys modules import signal import sys # importing sleep function from the time module from time import sleep
Schritt 2: Erstellen Sie die Funktion
Wir erstellen nun eine Funktion, die im Falle einer Tastaturunterbrechung aufgerufen wird, indem wir zwei beliebige Parameter akzeptieren. In diesem Fall werden die Parameter sig und frame berücksichtigt.
# creating a function that accepts the two arguments # it is called when the user makes a keyboard interruption def signalHandling(signal, frame):
Schritt 3: Benutzerdefinierten Handler definieren
Hier verwenden wir die Funktion signal.signal(), um einen benutzerdefinierten Handler zu definieren, der aufgerufen werden muss, wenn das Signal empfangen wird. Zusätzlich definieren wir signal.SIGINT, das durch Eingabe von Strg+C oder Strg+F2 auf der Tastatur einen Interrupt auslöst.
signal.signal(signal.SIGINT, signalHandling)
Schritt 4: Zufällige Nachricht drucken
Drucken Sie als Nächstes einige Zeilen einer zufälligen Nachricht aus, um dem Benutzer mitzuteilen, was zu tun ist, wenn die Tastatur unterbrochen wird.
# printing random message print(' printing random messages')
Schritt 5: Schlafzeit einstellen
Stellen Sie abschließend die Python-Ruhezeit auf eine zufällige Anzahl von Sekunden ein.
# sleep time sleep(time in sec)
Achtung
Es gibt ein Problem mit diesem Programm: Wenn Sie es unter Windows ausführen, können Sie es stoppen und SIGINT abfangen, indem Sie Strg und F2 drücken. Wenn Sie es jedoch unter Linux ausführen, können Sie es stoppen, indem Sie gleichzeitig Strg und C drücken .
SIGINT in Python erfassen
Algorithmus (Schritte)
Unten sind die Algorithmen/Schritte aufgeführt, die befolgt werden müssen, um die erforderliche Aufgabe auszuführen. -
Verwenden Sie das Schlüsselwort import, um die Module signal und sys zu importieren.
Verwenden Sie das Schlüsselwort import, um die Funktion sleep aus dem Zeitmodul zu importieren.
Erstellen Sie eine Variable und initialisieren Sie ihren Wert auf 1 (wird zur Darstellung der Anzahl der Schleifenausführungen verwendet).
Verwenden Sie while True für eine Endlosschleife.
Verwenden Sie den Try-Except-Block, um Fehler/Ausnahmen zu behandeln.
Drucken Sie die Anzahl der Schleifenausführungen, indem Sie die obige Variable drucken.
Verwenden Sie die Funktion sleep(), indem Sie ihr eine Zahl als Argument übergeben, um zwischen dem Drucken jeder Zahl eine zufällige Anzahl von Sekunden lang zu schlafen.
Füge 1 zur Anzahl der Schleifenausführungen hinzu.
Verwenden Sie den Block exclusive, um Tastaturunterbrechungsausnahmen zu behandeln.
Drucken Sie eine beliebige Meldung aus, wenn eine Tastaturunterbrechungsausnahme auftritt.
Verwenden Sie die Funktion exit() des sys-Moduls, um das Programm zu schließen/beenden.
Beispiel
Das folgende Programm verwendet try/catch, um SIGINT-Ausnahmen abzufangen -
# importing signal and sys modules import signal import sys # importing sleep function from the time module from time import sleep # initializing variable with value 1 to count the number of times the loop is executed k = 1 # looping infinite times using a while loop while True: # using try-except blocks for handling errors/exceptions try: # Printing the count of the number of times the loop is executed print(k) #sleeping for a random number of seconds time between printing of a number sleep(0.5) # Incrementing the loop execution count by 1 k += 1 # Handling the keyboard interruption exception using except block except KeyboardInterrupt: # printing any message if keyboard interruption exception occurs print("The loop has stopped!!") # closing/exiting the program sys.exit()
Ausgabe
Bei der Ausführung generiert das obige Programm die folgende Ausgabe:
1 2 3 4 5 6 7 8 9 10 11 12 13 The loop has stopped!!
In diesem Programm verwenden wir die Try-Catch-Anweisung, um Tastaturausnahmen zu behandeln. Beim Ausführen der Zahlenerhöhungsschleife im Try-Block haben wir den Tastatur-Interrupt im Catch-Block abgefangen.
Fazit
In diesem Artikel haben wir gelernt, wie man SIGINT mit Python erfasst. Wir haben gelernt, wie man Try/Catch-Anweisungen verwendet, um denselben Zweck zu erreichen. Mit Try- und Catch-Anweisungen können Ausnahmen wie Division durch 0 und Tastaturunterbrechungen behandelt werden.
Das obige ist der detaillierte Inhalt vonWie fängt man das SIGINT-Signal in Python ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

SlicingPapythonListisDoneUsingthesyntaxlist [Start: Stop: Stufe] .here'Showitworks: 1) StartIndexoFtheFirstelementtoinclude.2) stopiStheIndexoFtheFirstelementtoexclude.3) StepisTheincrementBetweenelesfulFulForForforexcractioningPorporionsporporionsPorporionsporporesporsporsporsporsporsporsporsporsporionsporsPorsPorsPorsPorsporsporsporsporsporsporsAntionsporsporesporesporesporsPorsPorsporsPorsPorsporsporspors,

Numpyallowsforvariousoperationssonarrays: 1) BasicarithmeticliKeaddition, Subtraktion, Multiplikation und Division; 2) AdvancedoperationssuchasmatrixMultiplication;

Arraysinpython, insbesondere ThroughNumpyandpandas, areessentialfordataanalyse, öfterspeedandeffizienz.1) numpyarraysenableAnalysHandlingoflargedatasets und CompompexoperationslikemovingAverages.2) Pandasextendsnumpy'ScapaBilitiesWithDaTataforsForstruc

ListsandNumPyarraysinPythonhavedifferentmemoryfootprints:listsaremoreflexiblebutlessmemory-efficient,whileNumPyarraysareoptimizedfornumericaldata.1)Listsstorereferencestoobjects,withoverheadaround64byteson64-bitsystems.2)NumPyarraysstoredatacontiguou

TensurepythonscriptsBehavectelyAcrossdevelopment, Staging und Produktion, UsethesStrategien: 1) Umweltvariablenforsimplesettings, 2) configurationFilesForComplexSetups und 3) dynamikloadingForAdaptability.eachMethodofferiqueNefits und Requiresca

Die grundlegende Syntax für die Python -Liste ist die Liste [START: STOP: STEP]. 1.Start ist der erste Elementindex, 2.Stop ist der erste Elementindex, und 3.Step bestimmt die Schrittgröße zwischen den Elementen. Scheiben werden nicht nur zum Extrahieren von Daten verwendet, sondern auch zum Ändern und Umkehrlisten.

ListSoutPer -CharakterArraysin: 1) Dynamics und Dynamics und 3), 2) StoringHeterogenData und 3) MemoryefficiencyForSparsedata, ButmayHavesLightPerformanceCostIncustonTectorationOperationen.

Toconvertapythonarraytoalist, Usethelist () constructororageneratorexpression.1) ImportThearrayModuleandCreateanarray.2) Uselist (arr) oder [xForxinarr] Toconvertittoalist in Betracht, überlegt Performance undMoryefficiencyForlargedatasets.


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

VSCode Windows 64-Bit-Download
Ein kostenloser und leistungsstarker IDE-Editor von Microsoft

Dreamweaver CS6
Visuelle Webentwicklungstools

Dreamweaver Mac
Visuelle Webentwicklungstools

SublimeText3 Linux neue Version
SublimeText3 Linux neueste Version
