Asynchrone Shell-Befehlsausführung in Python
Um die asynchrone Ausführung externer Shell-Befehle innerhalb eines Python-Skripts zu erleichtern, könnte man über die Verwendung des Betriebssystems nachdenken .system()-Funktion. Dieser Ansatz führt jedoch die Verwendung des &-Symbols am Ende des Befehls ein, um synchrones Verhalten zu vermeiden. Folglich wirft es Bedenken hinsichtlich seiner Eignung als geeignete Methode zur Erzielung einer asynchronen Ausführung auf.
Unterprozess: Eine überlegene Lösung
Anstelle von os.system() wird die Das Unterprozessmodul bietet eine geeignetere Lösung in Form der Popen-Klasse. Diese Klasse ermöglicht die nahtlose asynchrone Ausführung lang laufender Befehle, sodass das Python-Skript seinen Betrieb fortsetzen kann, während der externe Befehl seine Aufgaben ausführt.
Implementierung
Zur Veranschaulichung Betrachten Sie für die Verwendung von Popen das folgende Beispiel:
<code class="python">from subprocess import Popen # Initiate the long-running 'watch ls' command p = Popen(['watch', 'ls']) # Continue executing the Python script while the command runs # ... # Terminate the subprocess when necessary p.terminate()</code>
Zusätzliche Funktionen
Über die asynchrone Ausführung hinaus bietet die Popen-Instanz mehrere andere Funktionen. Insbesondere ermöglicht es die Überwachung seines Ausführungsstatus über die Methode poll(). Darüber hinaus kann man die Methode communi() nutzen, um Daten über stdin auszutauschen und auf die Beendigung des Prozesses zu warten.
Das obige ist der detaillierte Inhalt vonWie implementiert man die asynchrone Shell-Befehlsausführung in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!