Asynchrone Ausführung externer Befehle aus Python
Die asynchrone Ausführung externer Befehle ist eine häufige Anforderung in Skriptszenarien. In Python kann dies durch verschiedene Ansätze erreicht werden.
Eine Option ist die Verwendung von os.system, das die nicht blockierende Ausführung von Befehlen durch Anhängen eines kaufmännischen Und-Zeichens (&) am Ende ermöglicht. Diese Methode gilt jedoch als veraltet und wird aufgrund möglicher Probleme mit der Shell-Interaktion nicht empfohlen.
Ein optimalerer Ansatz ist die Verwendung von subprocess.Popen, das eine umfassendere und robustere API für die Verwaltung externer Prozesse bietet. Mit Popen können Befehle asynchron gestartet werden, sodass das Python-Skript weiterhin ausgeführt werden kann, während der externe Befehl im Hintergrund ausgeführt wird.
<code class="python">from subprocess import Popen p = Popen(['watch', 'ls']) # something long running # ... do other stuff while subprocess is running p.terminate()</code>
In diesem Beispiel wird die Popen-Instanz erstellt und der Befehl und seine Argumente übergeben . Das Python-Skript kann dann mit anderen Aufgaben fortfahren, während der externe Befehl asynchron ausgeführt wird. Später kann der Status der Popen-Instanz abgefragt werden (z. B. mit poll()), mit ihr kommuniziert werden (z. B. über communi()) oder beendet werden.
Das obige ist der detaillierte Inhalt vonWie führe ich externe Befehle asynchron in Python aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!