„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie führe ich externe Befehle asynchron in Python aus?

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

Veröffentlicht am 05.11.2024
Durchsuche:101

How to Execute External Commands Asynchronously in Python?

Asynchrones Ausführen externer Befehle aus Python

Das asynchrone Ausführen 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.

from subprocess import Popen
p = Popen(['watch', 'ls'])  # something long running
# ... do other stuff while subprocess is running
p.terminate()

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.

Freigabeerklärung Dieser Artikel wird unter folgender Adresse abgedruckt: 1729582514 Bei Verstößen wenden Sie sich bitte an [email protected], um ihn zu löschen
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3