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 :

console et processus


Sujet :

Python

  1. #1
    Invité
    Invité(e)
    Par défaut console et processus
    Bonjour à tous

    Voilà, j'ai une petite question concernant les processus lancés via Python et le module subprocess.
    J'ai un programme C qui fait pas mal de calculs et génère des infos du genre log sur la sortie standard.
    Je souhaiterais récupérer ces infos de façon transparente, et effectivement j'y arrive en redirigeant ma sortie vers un fichier (stdout = PIPE), ce qui me permet de traiter tout ça tranquillement après exécution.
    Le problème, c'est que j'ai malgré tout une énorme console vide qui apparait... je n'avais pas fait attention jusque là, vu que sous Eclipse rien n'apparaissait.
    Quelqu'un saurait-il comment cacher ça par le plus grand des hasards ? J'ai sous la main l'extension win32 pour Python, mais venant de Linux je ne suis pas du tout familier avec cette API.
    Si quelqu'un avait une idée, je serais preneur !

    Merci d'avance
    Dernière modification par Invité ; 04/09/2008 à 10h31.

  2. #2
    Membre expérimenté Avatar de pacificator
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 074
    Points : 1 728
    Points
    1 728

  3. #3
    Invité
    Invité(e)
    Par défaut
    Merci, je connaissais déjà pythonw.
    Ce n'est pas le processus de Python qui créé la console qui me gêne, mais un autre exécutable sur lequel je n'ai que très peu de contrôle.

    subprocess.Popen("fichier.exe")
    m'ouvre une console et m'affiche ma sortie comme prévu.

    subprocess.Popen("fichier.exe", stdout=PIPE)
    me renvoie les sorties dans un fichier, mais j'ai une console noire qui reste tout le temps de l'execution de fichier.exe. C'est celle ci que je souhaiterais dissimuler.

  4. #4
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 484
    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 484
    Points : 9 286
    Points
    9 286
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Essaye avec subprocess.Popen("fichier.exe", stdout=PIPE, shell=False)

    Tyrtamos

  5. #5
    Invité
    Invité(e)
    Par défaut
    D'après ce que j'avais vu dans la doc python, cette option n'a d'influence que sous UNIX. J'ai bon ?
    Toujours est-il que ça ne marche pas non plus

  6. #6
    Invité
    Invité(e)
    Par défaut
    j'ai bien trouvé quelque chose, mais ce n'est pas encore très satisfaisant...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    import subprocess
    import win32gui, win32con
     
    process = subprocess.Popen('fichier.exe')
    terminal = win32gui.FindWindow(None,"...fichier.exe")
    win32gui.ShowWindow(terminal, win32con.SW_HIDE)
    Le problème c'est qu'on dirait qu'il faut un certain temps avant de pouvoir capturer la console.

    En l'état, ça ne fonctionne pas correctement, mais si je rajoute un time.sleep(0.1) juste après avoir lancé le process, la console est effectivement cachée...

Discussions similaires

  1. Fermer la Console sans quitter le processus
    Par eTill dans le forum Windows Forms
    Réponses: 15
    Dernier message: 08/08/2008, 13h03
  2. console et processus
    Par stephane543 dans le forum Threads & Processus
    Réponses: 7
    Dernier message: 24/06/2008, 01h46
  3. Fermeture automatique d'une console d'un processus
    Par Mustrum_Ridculle dans le forum Visual C++
    Réponses: 2
    Dernier message: 06/03/2008, 15h43
  4. processus enfant : pas de console ?
    Par The Lord of Nesquik dans le forum Windows
    Réponses: 2
    Dernier message: 27/01/2007, 17h17
  5. Processus en boucle sans fenêtre ni console
    Par alainpeniche dans le forum Threads & Processus
    Réponses: 1
    Dernier message: 26/07/2005, 18h43

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