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 :

Lancer exécutable & arguments (os.system vs subprocess.Popen)


Sujet :

Python

  1. #1
    Membre averti
    Inscrit en
    Août 2005
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 24
    Par défaut Lancer exécutable & arguments (os.system vs subprocess.Popen)
    Bonjour,

    J'ai un problème pour lancer un process sous Windows (XP ou 7) depuis Python 2.5.1.

    Voilà ce que qui marche (évidemment avec des chemins avec espaces !) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    cmd = '%s %s %s' % ('start AcroRd32.exe', '/A "page=21"', '"'+r"C:\Documents and Settings\theuser\Mes documents\test3.pdf"+'"')
    sts = os.system(cmd)
    Voilà ce qui ne marche pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    args = ['start AcroRd32.exe', '/A "page=21"', '"'+r"C:\Documents and Settings\alaloop\Mes documents\test3.pdf"+'"']
    p = subprocess.Popen(args)
    Dommage parce que je préférerais utiliser la 2ième version pour avoir un meilleur contrôle sur le process (pid, kill, infos, ...).

    Savez-vous ce qui ne va pas ?

    Merci de votre aide !
    Sylvain

  2. #2
    Expert confirmé
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 486
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Je ne sais pas ce qui ne va pas dans le code proposé, mais j'arrive à le faire fonctionner comme suit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    args = r'"C:\Program Files (x86)\Adobe\Reader 9.0\Reader\AcroRd32.exe" /A page=21 "toto.pdf" '
     
    p = subprocess.Popen(args)

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2010
    Messages
    38
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Avril 2010
    Messages : 38
    Par défaut
    Citation Envoyé par mnementh64 Voir le message
    Savez-vous ce qui ne va pas ?
    Bonjour,
    il me semble que subprocess.Popen demande un executable avec son chemin comme l'indique Tyrtamos.
    Alors que 'start AcroRd32.exe' est une commande et dans ce cas ce serait plutôt un subprocess.call qu'il faut employer.
    Voir la doc ici.
    @+
    Lilive

  4. #4
    Membre averti
    Inscrit en
    Août 2005
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 24
    Par défaut
    Ok, merci à tous les deux. Ca fonctionne comme ça pour Acrobat reader.

    Le souci, c'est que pour certaines applis, le comportement n'a pas l'air constant.
    Par exemple :
    cmd = 'start SapStart.exe'
    cmd += ' /sal='
    cmd += '"'+r"C:\Program Files\SAP\SapSetup\setup\SAL\SapLogon.s8l"+'"'
    print cmd
    sts = os.system(cmd)

    La commande affichée se lance très bien sous DOS mais l'argument n'est pas reconnu en Python. Bof !

  5. #5
    Membre confirmé
    Inscrit en
    Avril 2010
    Messages
    38
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Avril 2010
    Messages : 38
    Par défaut
    Il y a eu une discussion intéressante à ce sujet sur StackOverFlow.
    Peut etre source d'inspiration...

Discussions similaires

  1. Utilisation de os.system ou subprocess.Popen
    Par othke dans le forum Général Python
    Réponses: 8
    Dernier message: 28/09/2011, 12h05
  2. Lancer exécutable à partir d'une page ASP
    Par wanou44 dans le forum IIS
    Réponses: 0
    Dernier message: 18/03/2008, 11h23
  3. lancer exécutables sans extension
    Par corentin59 dans le forum Scripts/Batch
    Réponses: 4
    Dernier message: 07/12/2007, 09h47
  4. Lancer exécutable dans projection flash
    Par geloic dans le forum Flash
    Réponses: 16
    Dernier message: 12/12/2006, 17h07
  5. Lancer exécutable en asynchrone
    Par ZeKiD dans le forum ANT
    Réponses: 4
    Dernier message: 30/03/2004, 16h42

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