"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment exécuter des commandes externes de manière asynchrone en Python ?

Comment exécuter des commandes externes de manière asynchrone en Python ?

Publié le 2024-11-05
Parcourir:115

How to Execute External Commands Asynchronously in Python?

Exécuter des commandes externes de manière asynchrone à partir de Python

L'exécution de commandes externes de manière asynchrone est une exigence courante dans les scénarios de script. En Python, cela peut être réalisé par différentes approches.

Une option consiste à utiliser os.system, qui permet d'exécuter des commandes non bloquantes en ajoutant une esperluette (&) à la fin. Cependant, cette méthode est considérée comme obsolète et n'est pas recommandée en raison de problèmes potentiels d'interaction avec le shell.

Une approche plus optimale consiste à utiliser subprocess.Popen, qui fournit une API plus complète et plus robuste pour gérer les processus externes. Avec Popen, les commandes peuvent être lancées de manière asynchrone, permettant au script Python de poursuivre son exécution pendant que la commande externe s'exécute en arrière-plan.

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

Dans cet exemple, l'instance Popen est créée, en passant la commande et ses arguments. Le script Python peut ensuite effectuer d'autres tâches pendant que la commande externe s'exécute de manière asynchrone. Plus tard, l'instance Popen peut être interrogée sur son statut (par exemple, en utilisant poll()), communiquée avec (par exemple, via communicate()) ou résiliée.

Déclaration de sortie Cet article est réimprimé à l'adresse : 1729582514. En cas d'infraction, veuillez contacter [email protected] pour le supprimer.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3