"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 réaliser l'exécution asynchrone de commandes Shell en Python : explorer les meilleures pratiques

Comment réaliser l'exécution asynchrone de commandes Shell en Python : explorer les meilleures pratiques

Publié le 2024-11-09
Parcourir:249

How to Achieve Asynchronous Shell Command Execution in Python: Exploring Best Practices

Exécution de commandes Shell asynchrone en Python : exploration d'approches alternatives

L'exécution de commandes externes de manière asynchrone à partir de scripts Python est une technique précieuse qui permet l'exécution continue de scripts tandis que les commandes externes accomplissent leurs tâches. Cet article explore les méthodes appropriées pour obtenir ce comportement asynchrone, en se concentrant sur l'utilisation de os.system() et subprocess.Popen.

os.system() et le symbole esperluette

L'utilisation de os.system() avec une esperluette (&) à la fin d'une commande peut en effet créer un processus détaché qui s'exécute de manière asynchrone. Cependant, cette méthode a des limites et n'est pas considérée comme l'approche recommandée pour l'exécution asynchrone.

subprocess.Popen - Une alternative supérieure

Pour une exécution de commande asynchrone fiable, sous-processus. Popen est le choix préféré. Il offre un large éventail de contrôles sur le processus enfant, vous permettant de :

• Create asynchronous processes with Popen()
• Perform tasks concurrently while the child process is active
• Terminate the process with terminate()
• Query its running status with poll()
• Communicate with it using stdin and stdout

Exemple d'utilisation de subprocess.Popen

from subprocess import Popen
p = Popen(['watch', 'ls'])  # Replace with your command
# Other code can run here while the command is executing
p.terminate()  # Stop the process when necessary

Conclusion

Bien que os.system() puisse offrir un niveau de base d'exécution asynchrone, subprocess.Popen fournit un solution plus robuste et flexible pour contrôler et interagir avec les processus enfants. Sa polyvalence et sa facilité d'utilisation en font la méthode recommandée pour l'exécution de commandes shell asynchrones en Python.

Déclaration de sortie Cet article est réimprimé à l'adresse : 1729582275. 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