Wie führe ich externe Befehle asynchron in Python aus?

Susan Sarandon
Freigeben: 2024-10-22 20:29:03
Original
685 Leute haben es durchsucht

How to Execute External Commands Asynchronously in Python?

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>
Nach dem Login kopieren

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!

Quelle:php
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!