Appeler un programme externe en Python
-
Utilisez la fonction
os.system()
pour exécuter des commandes système externes en Python -
Utilisez la fonction
os.popen()
pour exécuter des commandes système externes en Python -
Utilisez la fonction
subprocess.Popen()
pour exécuter des commandes système externes en Python -
Utilisez la fonction
subprocess.call()
pour exécuter des commandes système externes en Python -
Utilisez la fonction
subprocess.run()
pour exécuter des commandes système externes en Python
En Python, nous avons différents modules et fonctions disponibles pour communiquer et obtenir des réponses du système d’exploitation. Python a également des méthodes qui peuvent exécuter des programmes externes.
Dans ce didacticiel, nous expliquerons comment appeler un programme externe en Python.
Utilisez la fonction os.system()
pour exécuter des commandes système externes en Python
Le module os
en Python peut interagir avec le système d’exploitation de l’appareil et dispose de fonctions pour exécuter des commandes shell. La fonction system()
implémente une commande, qui lui est passée sous forme de chaîne, dans un sous-shell. Il renvoie l’état de sortie du shell, que le système d’exploitation renvoie après l’exécution de la commande donnée. Il permet d’exécuter plusieurs commandes à la fois et d’appeler des programmes externes, pas des commandes shell.
Par exemple,
import os
os.system("echo Hello World")
Utilisez la fonction os.popen()
pour exécuter des commandes système externes en Python
Une autre fonction du module os
pour exécuter des commandes de programmes externes est la fonction popen()
. Cette méthode ouvre un tube lié à la commande. Elle est similaire à la fonction os.system()
, mais elle fournit un objet de type fichier qui facilite les opérations d’entrée-sortie liées à la commande. Nous pouvons spécifier le mode de fichier pour le fichier et la taille de buff en tant que paramètre dans la fonction.
Par exemple,
import os
os.popen("echo Hello World")
Notez qu’il existe 4 types de fonction popen()
disponibles en Python 2. La différence entre eux est avec la sortie de ces 4 fonctions.
Utilisez la fonction subprocess.Popen()
pour exécuter des commandes système externes en Python
Le module subprocess
est similaire au module os
et dispose de fonctions et méthodes améliorées pour appeler des programmes externes. Le Popen
est une classe et non une méthode. C’est un peu compliqué à utiliser en raison de divers paramètres qui doivent être spécifiés avec la commande requise. Il combine toutes les 4 fonctions os.popen()
en une seule. Il exécute également le programme externe en tant que processus distinct. Le code suivant montre comment l’utiliser.
import subprocess
subprocess.Popen("echo Hello World", shell=True, stdout=subprocess.PIPE).stdout.read()
Utilisez la fonction subprocess.call()
pour exécuter des commandes système externes en Python
La fonction call()
est une amélioration de la fonction popen()
. Cependant, contrairement à la fonction popen()
, elle attend que la commande s’exécute avant de fournir le code de retour. Nous passons la commande comme argument à la fonction.
Par exemple,
import subprocess
subprocess.call("echo Hello World", shell=True)
Utilisez la fonction subprocess.run()
pour exécuter des commandes système externes en Python
En Python v3.5 et supérieur, la fonction run()
est plus souvent utilisée pour exécuter des commandes de programme. Il retourne un objet de processus terminé après l’exécution de la commande, passé à la fonction en tant que paramètre.
Par exemple,
import subprocess
print(subprocess.run("echo Hello World", shell=True))
Notez que le module subprocess
est préféré au module os
pour exécuter des commandes externes en Python.
Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.
LinkedIn