Il existe de multiples façon pour exécuter un programme externe qui dépendront de plusieurs facteurs (si il y a ou non des paramètres, si vous voulez attendre la fin du programme externe ou non avant de poursuivre le programme principal, …). Vous trouverez dans la Python Library Reference toutes les informations pour exploiter au mieux les différentes méthodes exposées à la suite. Toutes ses fonctions sont obtenues à partir du module os ou subprocess. Tout d'abord, vous pouvez utilisez la fonction os.startfile( path[, operation]) qui exécute le fichier path avec l'application associée par défaut et rend immédiatement la main.
Sélectionnez
import os os.startfile('c:/windows/notepad.exe') os.startfile('MonImage.bmp')
Une deuxième méthode est la fonction os.system( command) qui exécute command, ne rend la main que lorsque l'application lancée prend fin. Vous pouvez lancer l'application externe avec des paramètres.
Sélectionnez
import os os.system("c:/windows/notepad.exe monfichier.log") os.system('MonImage.bmp')
Une troisième méthode est la fonction os.spawnl(…) ou os.spawnv(…) ainsi que leurs variantes qui permet d'exécuter un programme dans un nouveau processus. Le premier paramètre attendu peut prendre comme valeur os.P_WAIT pour attendre la fermeture de l'application avant de poursuivre le programme principal ou os.P_NOWAIT pour rendre la main immédiatement.
Sélectionnez
import os os.spawnl(os.P_NOWAIT, "c:/windows/notepad.exe")
Une quatrième méthode est la fonction os.popen( command[, mode[, bufsize]]) qui exécute command dans un processus enfant et rend immédiatement la main en retournant un descripteur du fichier.
Sélectionnez
import os os.popen("c:/windows/notepad.exe monfichier.log")
Vous pouvez également regarder du côté du module subprocess ( Python Library Reference: Subprocess management ) qui aura pour but de remplacer les 3 dernières méthodes. Créé le 24 janvier 2007 par Guigui_
Lien : Python Library Reference: File Object Creation