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 :

ecrire dans le cmd avec python [Python 3.X]


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2019
    Messages : 5
    Par défaut ecrire dans le cmd avec python
    Bonjour,

    J'ai un soucis, je souhaite lancer un .exe depuis python, sauf que ça ne s'arrête pas là.
    Quand je lance mon .exe depuis python, le .exe me demande depuis le cmd d'entrer un nom de fichier input.
    Actuellement je le fais a la main mais j'aimerais savoir si il est possible de repondre au .exe directement depuis python?
    Nom : Capture d’écran 2023-01-20 185242.jpg
Affichages : 160
Taille : 14,3 Ko
    Merci d'avance pour votre aide

  2. #2
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 832
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 832
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par hippo.mllvs Voir le message
    Actuellement je le fais a la main mais j'aimerais savoir si il est possible de repondre au .exe directement depuis python?
    Déjà ça n'a absolument rien à voir avec Python puisque cela concerne la méthode d'appel de ton cmd, laquelle dépend de ton OS.
    Par exemple sous Linux on peut le faire via la redirection en entrée. Exemple le programme "xxx" attend deux infos, on peut l'appeler ainsi...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    xxx <<_EOT_
    info1
    info2
    _EOT_
    ... ensuite suffit de mettre cette forme d'appel dans Python mais là tu parles de "cmd" donc Windows donc MsDos donc il faut aller voir la doc de MsDos.
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2019
    Messages : 5
    Par défaut
    [
    il faut aller voir la doc de MsDos.
    ok je vais faire ça merci beaucoup

  4. #4
    Membre Expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 910
    Par défaut
    Salut,

    C'est possible en JS avec Node (on exécute un code et on peut accéder au stdout, stdin...), on fait ça aussi avec Java et probablement dans d'autres langages du coup je serais étonné qu'on ne puisse pas faire de même en Python...

    Mais j'ai peut-être mal compris la question ???

  5. #5
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 832
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 832
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Beginner. Voir le message
    du coup je serais étonné qu'on ne puisse pas faire de même en Python...
    Exact, je viens d'y arriver

    Le contexte: un programme shell "toto.sh" attendant deux input
    Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    #!/bin/bash
     
    echo "data 1"
    read a
    echo "data 2"
    read b
    echo "a=$a, b=$b"

    Ensuite un programme Python qui exécute le script en lui donnant les deux inputs
    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    #!/usr/bin/env python3
     
    import subprocess
    import pathlib
     
    subprocess.run(pathlib.Path.cwd() / "toto.sh", input=b"hello\nworld")

    Et au résultat
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    data 1
    data 2
    a=hello, b=world
    Donc pour le PO
    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    #!/usr/bin/env python3
     
    import subprocess
    import pathlib
     
    subprocess.run(pathlib.WindowsPath("e:", "2 ecole", "aero 5", "PM", "hyper", "hyper.exe"), input=b"nom_fichier")
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  6. #6
    Membre Expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 910
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    Exact, je viens d'y arriver
    Ah bah tant mieux... J'étais en train de chercher aussi, je suis tombé sur certaines discussions :

    - How to interact with an exe file with python - Stack Overflow
    - How to execute process in Python where data is written to stdin?
    - Popen and stdin to automate input to .exe - python

    Mais je n'ai pas encore bien regardé et ta solution semble plus simple...

    Merci pour l'exemple.

  7. #7
    Membre Expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 910
    Par défaut
    Citation Envoyé par Sve@r Voir le message

    Donc pour le PO
    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    #!/usr/bin/env python3
     
    import subprocess
    import pathlib
     
    subprocess.run(pathlib.WindowsPath("e:", "2 ecole", "aero 5", "PM", "hyper", "hyper.exe"), input=b"nom_fichier")
    Apparemment d’après la doc (https://docs.python.org/fr/3/library/subprocess.html) on pourrait aussi faire ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    import subprocess
     
    subprocess.run([r"E:\2 ecole\aero 5\PM\hyper\hyper.exe", "nom_fichier"])
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    import subprocess
     
    subprocess.Popen([r"E:\2 ecole\aero 5\PM\hyper\hyper.exe", "nom_fichier"])

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2019
    Messages : 5
    Par défaut
    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    #!/usr/bin/env python3
     
    import subprocess
    import pathlib
     
    subprocess.run(pathlib.WindowsPath("e:", "2 ecole", "aero 5", "PM", "hyper", "hyper.exe"), input=b"nom_fichier")
    Merci beaucoup ça a bien marché.
    Je m'étais déja mis avec un os.chdir dans le bon fichier donc j'ai juste pathlib.WindowsPath("hyper.exe")
    Vous m'economiser 187 manip

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 12/12/2006, 13h30
  2. Écrire dans un fichier avec shell
    Par dams78 dans le forum Linux
    Réponses: 5
    Dernier message: 07/12/2006, 17h56
  3. Ecrire dans une CEdit avec deux Couleurs Différentes
    Par yoyothebest dans le forum MFC
    Réponses: 1
    Dernier message: 25/03/2006, 19h09
  4. Ecrire dans un fichier avec PL/SQL (oracle)
    Par Titouf dans le forum PL/SQL
    Réponses: 3
    Dernier message: 02/10/2005, 06h36
  5. [VBS] Ecrire dans les Eventlog avec VBS
    Par Hakkou dans le forum VBScript
    Réponses: 1
    Dernier message: 04/10/2004, 14h50

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