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 :

Problème pour remplir les inputs d'un .bat


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 4
    Par défaut Problème pour remplir les inputs d'un .bat
    Bonjour,

    Je voudrais lancer un .bat et renseigner les entrées faites via l'input directement à partir de python. Mais je n'y arrive pas.

    J'ai essayé avec popen et stdin ou communicate, mais rien à faire ...
    Par conséquent, je suis preneur de tous les pistes.

    En simplifiant, voici un exemple de ce que je cherche à faire :

    Mon fichier a.bat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    set /p i= 
    echo Your input was : %i% 
    pause
    Mon fichier python qui se contente de démarrer a.bat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    import os, subprocess 
    path = os.getcwd() 
    proc = subprocess.Popen(path + '\\a.bat')
    Une partie des choses que j'ai essayé :
    proc.communicate('5')
    proc.stdin.write('5')
    avec ou sans stdin=subprocess.PIPE dans le popen

  2. #2
    Membre Expert

    Homme Profil pro
    Diverses et multiples
    Inscrit en
    Mai 2008
    Messages
    662
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Diverses et multiples

    Informations forums :
    Inscription : Mai 2008
    Messages : 662
    Par défaut
    Peut-être un petit proc.stdin.flush() après y avoir écrit*? Ou encore, rajouter un '\n' à la fin de ce qu’on y écrit*?

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 4
    Par défaut
    Citation Envoyé par mont29 Voir le message
    Peut-être un petit proc.stdin.flush() après y avoir écrit*? Ou encore, rajouter un '\n' à la fin de ce qu’on y écrit*?
    Merci !
    J'ai testé avec l'un, l'autre et les deux, mais ça ne change rien.

    Par contre j'ai remarqué que lorsque je mettais plus que mon .bat dans le Popen, ma fenêtre dos apparaissait sans que je vois la ligne d'input du .bat.
    En gros, avec un Popen de la sorte :
    proc = subprocess.Popen(path + '\\a.bat', stdin=subprocess.PIPE)

  4. #4
    Membre averti
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2012
    Messages : 39
    Par défaut
    Bonjour,

    Tout dépend de la taille des paramètres à rentrer via l'input() mais pourquoi ne pas passer par un fichier txt que tu lirais avec ton .bat ensuite.

    Après c'est une idée à la con peut être mais si ça peut éviter de se prendre la tête, et en attendant de trouver mieux..

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 4
    Par défaut
    Bonjour,

    J'aimerais bien pouvoir modifier le .bat ...

    J'ai simplifié le problème pour vous le présenter, mais en gros, je n'ai malheureusement pas la possibilité de modifier le .bat, ni pour passer par des fichiers ni pour passer les infos en arguments. Donc je ne vois plus que les pipes.

Discussions similaires

  1. Réponses: 0
    Dernier message: 11/08/2012, 12h33
  2. Réponses: 1
    Dernier message: 03/02/2011, 10h03
  3. Réponses: 6
    Dernier message: 24/01/2005, 14h12
  4. Réponses: 1
    Dernier message: 17/05/2004, 11h29

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