IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Exécution d'un exe avec argument


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre extrêmement actif
    Avatar de MarieKisSlaJoue
    Homme Profil pro
    Ingénieur Cloud
    Inscrit en
    Mai 2012
    Messages
    1 145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Roumanie

    Informations professionnelles :
    Activité : Ingénieur Cloud
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 1 145
    Billets dans le blog
    20
    Par défaut Exécution d'un exe avec argument
    Bonjour,

    Voila j'ai un problème avec une petit script python.
    Je voudrai exécuter un .exe, mais je dois aussi lui passer plusieurs argument.
    Pour ça j'ai utilisé.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     os.system("monProgramme.exe -model \"arg1\" -role \"arg2\" -operation \"arg3\"")
    puis

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    os.execl("monProgramme.exe", "-model \"arg1\" -role \"arg2\" -operation \"arg3\"")
    et enfin

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     os.execv("monProgramme.exe", "-model \"arg1\" -role \"arg2\" -operation \"arg3\"")
    à chaque fois mon programme ce lance, mais sans prendre en compte les arguments.
    Si je lance depuis un batch les commande et donc arguments sont bon.

    Quelqu'un aurait il une idée de solution ?
    Ce post à été écrit par un panda
    Apollo 11 - AGC revue de code
    -- qwerty keybord

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 742
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 742
    Par défaut
    Salut,

    os.system prend une chaîne de caractères en arguments:
    La question se résume a comment construire une chaîne de caractères avec des bout qui seront littéraux et des bouts qui seront variables.

    A la console Python:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    >>> var = '123'
    >>> s = "toto " + var + '_tutu'
    >>> print (s)
    Après vous pouvez utiliser un format "a la C":
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    >>> s = 'toto %s_tutu' % (var)
    Rien qui décoiffe: juste des notions de bases que vous pourriez apprendre par vous même en ouvrant un tuto...

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre extrêmement actif
    Avatar de MarieKisSlaJoue
    Homme Profil pro
    Ingénieur Cloud
    Inscrit en
    Mai 2012
    Messages
    1 145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Roumanie

    Informations professionnelles :
    Activité : Ingénieur Cloud
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 1 145
    Billets dans le blog
    20
    Par défaut
    Je pense que j'ai du mal m'exprimer.

    dans mon exemple \"arg1\", ne désigne pas les paramètre que je passe à python mais bien déjà des chaine de caractère.
    Je remplace arg par des valeur à la con comme exemple pour être sur de mettre fait comprendre.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     os.system("monProgramme.exe -model \"pandaModel\" -role \"master\" -operation \"master|.\conf\fichierconf.xml\"")
    Donc non justement il n'y à pas de bout variable dans mon script.

    Et même si je fous les string dans des variables ça ne résous pas mon problème. Ça rend le code à la limite plus clair, mais pour un script qui tien en une ligne c'est pas le plus important.
    Ce post à été écrit par un panda
    Apollo 11 - AGC revue de code
    -- qwerty keybord

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 742
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 742
    Par défaut
    Citation Envoyé par MarieKisSlaJoue Voir le message
    Je pense que j'ai du mal m'exprimer.
    Si vous ne dites pas ce que vous voulez, on en est réduit a deviner...
    Passez par la case console pour raconter:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    >>> s = "la chaine que j'aimerais construire"
    >>> print (s) # l'horreur que j'obtiens
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Salut,

    Et si tu essayes comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    import subprocess
     
    ...
     
        subprocess.Popen(["monProgramme.exe", "-model", "arg1", "-role", "arg2",
                            "-operation", "arg3"], universal_newlines=True, 
                            stdout=subprocess.PIPE))
    ça donne quoi ?

  6. #6
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 742
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 742
    Par défaut
    @VinsS
    Le sburk est dans le bout de la chaîne "master|.\conf\fichierconf.xml\" donnée dans le deuxième post.
    La solution sera "raw string".

    Utiliser os.system, Popen,... est anecdotique.
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. Gros projets et pas le temps : Executer un .exe avec argument.
    Par yoann34 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 07/09/2012, 17h43
  2. Erreur lancement .exe avec argument : clr20r3
    Par TomDuBouchon dans le forum Windows Forms
    Réponses: 2
    Dernier message: 25/08/2009, 16h16
  3. Exécuter un .exe avec java
    Par chebmo1986 dans le forum Langage
    Réponses: 1
    Dernier message: 29/04/2009, 17h05
  4. Exécuter un .exe avec des paramètres
    Par Coussati dans le forum Débuter
    Réponses: 8
    Dernier message: 01/02/2009, 20h26
  5. Réponses: 9
    Dernier message: 30/08/2006, 13h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo