Outils pour utilisateurs

Outils du site


debuter_en_python:lancer_un_programme_externe

Lancer un programme externe en python

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

Lien : Python Library Reference: Process Management

Lien : Python Library Reference: Subprocess management

/home/chanteri/www/fablab37110/data/pages/debuter_en_python/lancer_un_programme_externe.txt · Dernière modification : 2023/01/27 16:07 de 127.0.0.1