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 :

Peut-on ouvrir plusieurs consoles [Python 3.X]


Sujet :

Python

  1. #1
    Membre du Club
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2013
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Novembre 2013
    Messages : 76
    Points : 40
    Points
    40
    Par défaut Peut-on ouvrir plusieurs consoles
    Bonjour,

    J'ai besoin d'afficher en continue les résultats d'un programme.
    J'utilise subprocess.Popen pour afficher ces résultats sur une console mais j'aurai besoin d'avoir plusieurs consoles différentes chacune affichant un type de données.
    J'ai cherché en vain.
    Savez-vous si cela est réalisable et .....heu ..... comment le faire ?

    Merci

  2. #2
    Membre chevronné
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 608
    Points : 2 072
    Points
    2 072
    Par défaut
    Spyder, par exemple.
    Pas d'aide par mp.

  3. #3
    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 Tonivege Voir le message
    J'ai besoin d'afficher en continue les résultats d'un programme.
    J'utilise subprocess.Popen pour afficher ces résultats sur une console mais j'aurai besoin d'avoir plusieurs consoles différentes chacune affichant un type de données.
    J'ai cherché en vain.
    Savez-vous si cela est réalisable et .....heu ..... comment le faire ?
    C'est réalisable mais créer des "consoles" dépend de l'environnement système.
    Après, il faut voir si c'est une solution adaptée car vous parlez d'un programme alors que Popen implique plusieurs programmes.

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

  4. #4
    Membre du Club
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2013
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Novembre 2013
    Messages : 76
    Points : 40
    Points
    40
    Par défaut
    OK autant pour moi.
    D'abord merci de vos réponses.

    Je suis sous Windows avec python 3.5 avec IEP pour l'éditeur.
    Je ne connais pas Spyder mais c'est un environnement de développement. Je ne parle pas d'une exec interprétée une fois le prog compilé en .exe

    Pour le détail, j'ai un programme qui réalise des traitements en multithread et chaque traitement affiche ses résultats dans la console (fenetre dos).
    Je voudrais avoir 3 fenêtres distinctes où je peux afficher le résultat de mes 3 traitements de façon séparée et cela de façon continue cad que les résultats étant volumineux, ils défilent dans chaque fenêtre et cela jusqu'à l'interruption du programme.

    Les print de base affichent dans la console (fenêtre dos).
    J'ai essayé avec subprocess.Popen pour voir si en créant des process séparés, les affichages étaient séparés mais que nenni.

    Voilà et merci encore.

  5. #5
    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 Tonivege Voir le message
    Les print de base affichent dans la console (fenêtre dos).
    J'ai essayé avec subprocess.Popen pour voir si en créant des process séparés, les affichages étaient séparés mais que nenni.
    Essayez de préfixer la commande passée à Popen par START (qui est une commande Windows qui crée une console) et en précisant shell=True i.e.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Popen('START la_commande', shell=True)
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  6. #6
    Membre du Club
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2013
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Novembre 2013
    Messages : 76
    Points : 40
    Points
    40
    Par défaut
    Et ben m..... alors, cela fonctionne

    Un STAR placer au bon endroit et comme il faut et hop !

    Les fenêtres restent ouvertes une fois le prog terminé mais je pense que l'on peut les killer.
    Bref un grand merci.

  7. #7
    Membre du Club
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2013
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Novembre 2013
    Messages : 76
    Points : 40
    Points
    40
    Par défaut
    Bon cela fonctionne mais pas comme je voulais.

    Les affichages continuent de s'afficher sur le fenêtre principale. Sur les autres consoles, je ne peux que passer des commandes windows.
    Hum .... subprocess.Popen ne semble pas être la solution.

    Basiquement je voudrais :
    fenetre 1, print ("Toto")
    fenetre 2, print ("Tata")
    fenetre 3, print ("Titi")

  8. #8
    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,

    Vous lancez la console Python, puis vous tapez:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    >>> import subprocess as sp
    >>> sp.Popen('start python -c "print(\'toto\'); input()"', shell=1)
    normalement, çà ouvre une fenêtre (console Windows), çà affiche "toto", puis çà attends que vous tapiez qqc.

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

  9. #9
    Membre du Club
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2013
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Novembre 2013
    Messages : 76
    Points : 40
    Points
    40
    Par défaut
    Merci wiztricks de ton temps et du détail de tes réponses mais .....

    Là j'ai 1 fenêtre par print....
    Mon traitement produit des résultats de 3 types, de type a, b ou c.
    Si résultat de type a, afficher le résultat dans fenêtre a
    Si résultat de type b, afficher le résultat dans fenêtre b
    Si résultat de type c, afficher le résultat dans fenêtre c

    et cela en continu

    En fait, je voudrais manipuler 3 consoles (fenetres dos) comme des fichiers

  10. #10
    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 Tonivege Voir le message
    Merci wiztricks de ton temps et du détail de tes réponses mais .....
    Relisez ma première réponse:
    Après, il faut voir si c'est une solution adaptée car vous parlez d'un programme alors que Popen implique plusieurs programmes.
    mais ce n'est que maintenant que vous décrivez le pourquoi vous êtes parti sur cette solution:
    Citation Envoyé par Tonivege Voir le message
    Là j'ai 1 fenêtre par print....
    Mon traitement produit des résultats de 3 types, de type a, b ou c.
    Si résultat de type a, afficher le résultat dans fenêtre a
    Si résultat de type b, afficher le résultat dans fenêtre b
    Si résultat de type c, afficher le résultat dans fenêtre c
    Techniquement, le plus simple est d'utiliser une bibliothèque graphique. Vous créez vos fenêtres avec un widget Text "dedans" et vous afficher vos informations dans le widget Text. C'est ce qui permet d'avoir un seul programme qui "contrôle" plutôt que de mettre en place plusieurs programmes et une mécanique de communication entre eux.

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

  11. #11
    Membre du Club
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2013
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Novembre 2013
    Messages : 76
    Points : 40
    Points
    40
    Par défaut
    Oui, j'étais parti sur des fenêtres graphiques avec tkinter mais il ne réalise pas de scrolling automatique, la fenetre s'agrandit avec l'affichage.

    Cela m'a paru compliqué alors j'ai cherché et je suis tombé sur subprocess qui ouvre des process fils alors je me suis dit que cela ouvrait aussi une fenetre 'affichage et voilà.

    Bon je repars sur tkinter.
    En tout cas, merci

  12. #12
    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 Tonivege Voir le message
    Oui, j'étais parti sur des fenêtres graphiques avec tkinter mais il ne réalise pas de scrolling automatique, la fenetre s'agrandit avec l'affichage.

    Cela m'a paru compliqué alors j'ai cherché et je suis tombé sur subprocess qui ouvre des process fils alors je me suis dit que cela ouvrait aussi une fenetre 'affichage et voilà.
    C'est pas comme si le module scrolledtext n'existait pas:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    >>> from tkinter.scrolledtext import ScrolledText
    >>> w = ScrolledText(height=10)
    >>> w.pack()
    >>> for x in range(20): w.insert('end', '%d\n' % x)
    ...
    >>> w.yview_pickplace("end")
    mais, c'est plus facile de zapper de techno. que d'essayer d'avancer dans le brouillard (et poser la question dans le bon forum).

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

  13. #13
    Membre du Club
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2013
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Novembre 2013
    Messages : 76
    Points : 40
    Points
    40
    Par défaut
    Merci W

    En effet, après avoir galéré sur tk et voyant que l'affichage prenait une dimension trop complexe, j'ai testé autre chose, la lecture de la doc m'a fait penser que subprocess offrait une solution plus rapide. A priori, erreur.

    Je repars sur tk mais ce qui parait facile aux uns peu être compliqué pour les autres surtout quand s'est son 2ième prog en python....
    Par exemple, l'exemple que tu me donnes, je même pas où le positionner et encore moins comment l'intégrer mais je vais voir une fois que mon pb actuel sera résolu.
    J'ai repris mon prog avec tk et pour le moment, 1 seule ligne s'affiche, celle en cours. Aucun défilement.
    Bon je lis la doc et merci encore.

  14. #14
    Membre chevronné
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 608
    Points : 2 072
    Points
    2 072
    Par défaut
    Citation Envoyé par Tonivege Voir le message
    OK autant pour moi.
    D'abord merci de vos réponses.

    Je suis sous Windows avec python 3.5 avec IEP pour l'éditeur.
    Je ne connais pas Spyder mais c'est un environnement de développement. Je ne parle pas d'une exec interprétée une fois le prog compilé en .exe

    Pour le détail, j'ai un programme qui réalise des traitements en multithread et chaque traitement affiche ses résultats dans la console (fenetre dos).
    Je voudrais avoir 3 fenêtres distinctes où je peux afficher le résultat de mes 3 traitements de façon séparée et cela de façon continue cad que les résultats étant volumineux, ils défilent dans chaque fenêtre et cela jusqu'à l'interruption du programme.

    Les print de base affichent dans la console (fenêtre dos).
    J'ai essayé avec subprocess.Popen pour voir si en créant des process séparés, les affichages étaient séparés mais que nenni.

    Voilà et merci encore.
    Désolé, j'avais mal lu la question, je pensais que tu voulais exécuter plusieurs programmes en même temps dans des consoles différentes.
    Pas d'aide par mp.

  15. #15
    Membre du Club
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2013
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Novembre 2013
    Messages : 76
    Points : 40
    Points
    40
    Par défaut
    Pas grave

    Merci W j'ai ma fenetre avec le scrolling qui fonctionne et avec l'affichage.

    Tout bon, un pb de thread à régler mais c'est tout bon. tkinter était donc la solution pour gérer différentes fenêtres avec un affichage spécifique par fenetre.

    Encore merci.

    Je ferme ce post

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

Discussions similaires

  1. Ouvrir plusieurs consoles
    Par Sieur_Blabla dans le forum Général Java
    Réponses: 3
    Dernier message: 27/01/2011, 14h30
  2. Peut-on ouvrir plusieurs pages par une fonction JS
    Par Ashleycole dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 31/05/2007, 15h42
  3. [CrystalReport]ouvrir plusieur états simultanément
    Par mcrocher dans le forum SAP Crystal Reports
    Réponses: 7
    Dernier message: 23/03/2005, 17h14
  4. ouvrir plusieurs fenetre avec un lien
    Par demanghonj dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 21/10/2004, 10h35
  5. Peut-on utiliser plusieurs canaux DMA simultanément ?
    Par le mage tophinus dans le forum Assembleur
    Réponses: 18
    Dernier message: 26/09/2003, 09h18

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