Outils pour utilisateurs

Outils du site


debuter_en_python:lancer_un_programme_externe

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
debuter_en_python:lancer_un_programme_externe [2018/11/26 23:38] gerardadmindebuter_en_python:lancer_un_programme_externe [2023/01/27 16:07] (Version actuelle) – modification externe 127.0.0.1
Ligne 1: Ligne 1:
 +===== 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 : [[http://python.developpez.com/cours/docs.python.org/2.6/library/os.php#file-object-creation|Python Library Reference: File Object Creation]]
 +
 +
 +Lien : [[http://python.developpez.com/cours/docs.python.org/2.6/library/os.php#process-management|Python Library Reference: Process Management]]
 +
 +
 +Lien : [[http://python.developpez.com/cours/docs.python.org/2.6/library/subprocess.php|Python Library Reference: Subprocess management]]