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 :

A partir d'un script afficher un terminal


Sujet :

Python

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2016
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2016
    Messages : 19
    Points : 12
    Points
    12
    Par défaut A partir d'un script afficher un terminal
    Bonjour,

    Mon titre peu clair ne vous a pas rebuté. J'ai créé un script python avec une interface graphique qui à l'appuie d'un bouton exécute une fonction (en l'occurrence du logiciel GMSH) que je lance en tant normal dans un terminal. La ligne de code le faisant est (la commande n'as pas ici d’intérêt) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    subprocess.call("gmsh " +brep.get()[:-5] +".geo -1 -2 -3 -optimize_netgen -format med -saveall", shell =True)
    Si j'exécute la commande GMSH directement dans un terminal, il affichera des tas de trucs, mais vu que je la lance a partir d'un bouton Tkinter, la fonction s'exécute mais sans rien afficher, puisque aucun terminal n'est ouvert.
    Ma question est: puis-je, en plus d’exécuter la fonction, ouvrir un terminal ou juste une zone d'affichage qui affichera tous le blabla que déclenche la fonction.

    J'espère être clair.

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 281
    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 281
    Points : 36 768
    Points
    36 768
    Par défaut
    Salut,

    Citation Envoyé par Shozma Voir le message
    Si j'exécute la commande GMSH directement dans un terminal, il affichera des tas de trucs, mais vu que je la lance a partir d'un bouton Tkinter, la fonction s'exécute mais sans rien afficher, puisque aucun terminal n'est ouvert.
    Ma question est: puis-je, en plus d’exécuter la fonction, ouvrir un terminal ou juste une zone d'affichage qui affichera tous le blabla que déclenche la fonction.
    Lorsque vous lancez une commande via subprocess, vous devez précisez sdout, stderr,... pour pouvoir récupérer ce que le programme sort normalement sur les stdout, stderr "standard" qui seront le terminal lorsque vous lancez le programme depuis un terminal ou utilisez un "raccourci" comme subprocess.check_output (au lieu de .call ou de .Popen): le texte qui sort pourra être assigné à une variable et affiché comme vous voulez ensuite.

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

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2016
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2016
    Messages : 19
    Points : 12
    Points
    12
    Par défaut
    Après vision de plusieurs exemples et docs, voilà ce que j'ai fait:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    proc = Popen("gmsh " +brep.get()[:-5] +".geo -1 -2 -3 -optimize_netgen -format med -saveall", stdout=PIPE, shell=True)
    display_shell(proc)
     
    def display_shell(command):
        texte = ' '
        while texte != '':
            texte = command.stdout.readline()
            zoneTexte.insert(END, texte)
            zoneTexte.yview(END)
            zoneTexte.update()
    Problème, je veux afficher les mêmes couleurs que dans la console. Je me dis quand même que ça doit être possible d'ouvrir graphiquement la console en plus d'y exécuter des fonctions. Je me trompe? ce n'est vraiment pas possible?

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 281
    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 281
    Points : 36 768
    Points
    36 768
    Par défaut
    Citation Envoyé par Shozma Voir le message
    Problème, je veux afficher les mêmes couleurs que dans la console. Je me dis quand même que ça doit être possible d'ouvrir graphiquement la console en plus d'y exécuter des fonctions. Je me trompe? ce n'est vraiment pas possible?
    Dans ce cas (au moins sous Linux), il faut créer un xterm pour y lancer la commande et inclure la fenêtre dans l'application tk.
    Et avec de bons mots clefs vous trouverez facilement des exemples.

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 03/11/2005, 12h14
  2. créer une base de donnée à partir d'un script
    Par illegalsene dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 26/08/2005, 14h08
  3. Lancer une applisation a partir d'un script
    Par sigeme dans le forum Langage
    Réponses: 3
    Dernier message: 19/07/2005, 12h29
  4. Réponses: 4
    Dernier message: 01/06/2005, 17h01
  5. [XSL] Afficher une page XML à partir d'un script PHP
    Par JiJiJaco dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 10/04/2005, 14h41

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