os.exec ( )
DESCRIPTION.
Lance l'exécution d'un nouveau programme, depuis fichier exécutable.
SYNTAXE.
os.execl ( executable , attributs )
os.execle ( executable , attributs , environnement )
os.execlp ( executable , attributs )
os.execlpe ( executable , attributs , environnement )
os.execv ( executable , attributs )
os.execve ( executable , attributs , environnement )
os.execvp ( executable , attributs )
os.execvpe ( executable , attributs , environnement )
os.execl* ( ) ⇨ appel de la méthode [ OBLIGATOIRE ]
executable ⇨ fichier exécutable [ OBLIGATOIRE ]
attributs ⇨ liste des attributs à passer [ OBLIGATOIRE ]
environnement ⇨ liens symboliques [ optionnel ]
REMARQUES.
executable doit être fichier exécutable sur la machine hote et avec l'os actuel.
attributs est une succussion de valeurs à passer comme attributs pour le bon fonctionnement souhaité pour executable. Il peut s'agir, selon les cas, d'une suite de valeurs séparées par des virgules, d'une list ( ), d'un tuple ( ). Notez bien que le premier argument passer, automatiquement, à executable sera toujours le nom de executable, Ce nom pourra, souvent, remplacer le premier argument fourni dans attributs. C'est pourquoi attributs devraient toujours commencer avec le nom de la commande à lancer, mais ce n'est pas obligatoire.
environnement doit être un objet mapper, mapping, qui sera utilisé pour remplacer les variables d'environnement qui pourraient être définies autrement dans le nouveau processus.
Les méthodes offertes par le module subprocess, de la bibliothèque standard, en particulier subprocess.run ( ) seront, le plus souvent, mieux adaptées au lancement de commandes de nouveaux processus.
Toutes ces syntaxes lancent l'exécution d'un nouveau programme identifié par executable. en le substituant au instantanément processus en cours.
Si des fichiers et/ou des descripteurs étaient en cours de manipulation, ils ne seront pas purgés. Il faudra appeler la méthode os.fsync ( ) ou sys.stdout.flush ( ), du module sys de la bibliothèque standard, pour les purger manuellement, et vider la mémoire tampon des ces objets, avant d'utiliser une des formes de os.exec* ( ).
Sous Unix, executable est chargé dans le processus actuel, et il se voit attribuer le même identifiant de processus (PID) que l'appelant.
Les syntaxes contenant un l : os.execl ( ), os.execle ( ), os.execlp ( ) et os.execlpe ( ) sont à utiliser si le nombre de valeurs dans attributs est fixé dans l'écriture du code, elles seront alors interprétées comme paramètres additionnels aux fonctions exec*().
Les syntaxes contenant un v : os.execv ( ), os.execve ( ), os.execvp ( ) et os.execvpe ( ) sont à utiliser si le nombre de valeurs dans attributs n'est pas connu, ou indéterminé, elles seront alors présentées dans une objets collection list ( ) ou tuple ( ), qui pourront aussi contenir des options choisies par l'utilisateur.
Les syntaxes contenant un p : os.execlp ( ), os.execlpe ( ), os.execvp ( ) et os.execvpe ( ) se référeront à la variable d'environnement PATH pour localiser executable. ou environnement s'il est présent. Avec toutes les autres syntaxes, sans p, executable doit être exprimé avec un chemin absolu ou relatif approprié.
Les syntaxes contenant un e : os.execle ( ), os.execlpe ( ), os.execve ( ) et os.execvpe ( ) doit avoir un objet mapper, mapping, comme dernier paramètre, qui définira les variables d'environnement que executable devra accueillir par défaut. Avec toutes les autres syntaxes, sans e, executable héritera de l'environnement du processus actuel.
Note : Certains os, acceptent un descripteur de fichier ouvert pour la syntaxe os.execve ( ), par prudence, pour éviter à Python de lever une exception, on s'assurera de cette possibilité en consultant la constante os._supports_fd.
Voir aussi le module subprocess, de la bibliothèque standard, pour le lancement de nouveau processus.
EXEMPLE.
import os
kapplication = "votreexecutable" # indiquez un fichier exécutable de votre environnement
os.execv ( kapplication , [ ] )
Votre aide est précieuse pour améliorer ce site, alors n'hésitez pas à faire part de
Dans la LOGITHEQUE de MON PYTHON PAS A PAS
vous trouvez des suggestions de projets simples et classiques pour
ooo
TESTER - DÉCOUVRIR - PRATIQUER - APPROFONDIR - EXPLORER
ooo
la programmation récréative avec le langage PYTHON 3
avec un exemple de résolution à télécharger pour vous inspirer.