Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 5 sur 5
  1. #1
    Membre à l'essai
    Homme Profil pro luc
    retraité
    Inscrit en
    décembre 2011
    Messages
    40
    Détails du profil
    Informations personnelles :
    Nom : Homme luc
    Localisation : Brésil

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : décembre 2011
    Messages : 40
    Points : 21
    Points
    21

    Par défaut afficher des résultats intermédiaires

    Bonjour à tous.
    Quand je lance un script, il s'exécute, et ensuite, Python m'affiche tous les "print" demandés, les uns à la suite des autres.
    Comment faire pour afficher les print au fur et à mesure de leur "création", sans attendre la fin du programme?
    Merci

  2. #2
    Membre à l'essai
    Homme Profil pro Etienne
    Inscrit en
    février 2012
    Messages
    39
    Détails du profil
    Informations personnelles :
    Nom : Homme Etienne
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : février 2012
    Messages : 39
    Points : 21
    Points
    21

    Par défaut

    Bonjour,

    Si ton script n'affiche qu'à la fin les print() de ton programme, c'est que ton programme est écrit pour qu'il affiche ceux-ci à la fin.

    Il serait plus simple de poster ton script sur le forum pour comprendre pourquoi cela arrive et quels sont les façon d'y remédier.

  3. #3
    Membre Expert

    Homme Profil pro Bastien Montagne
    Diverses et multiples
    Inscrit en
    mai 2008
    Messages
    662
    Détails du profil
    Informations personnelles :
    Nom : Homme Bastien Montagne
    Localisation : France

    Informations professionnelles :
    Activité : Diverses et multiples

    Informations forums :
    Inscription : mai 2008
    Messages : 662
    Points : 1 240
    Points
    1 240

    Par défaut

    Citation Envoyé par sir_nebuchadnezzar Voir le message
    Si ton script n'affiche qu'à la fin les print() de ton programme, c'est que ton programme est écrit pour qu'il affiche ceux-ci à la fin.
    C’est un peu short comme réponse, ça… Ceci dit,

    Citation Envoyé par sir_nebuchadnezzar Voir le message
    Il serait plus simple de poster ton script sur le forum pour comprendre pourquoi cela arrive et quels sont les façon d'y remédier.
    …n’est pas faux*!

    Bon, pour en revenir au problème, il me semble que la console windows fait parfois sa mauvaise tête… Si c’est bien sous cet OS que vous êtes, print envoyant par défaut le texte sur sys.stdout, vous pouvez (après avoir importé sys évidemment) faire un sys.stdout.flush() après chaque print.

    Voire même écrire une fonction wrapper qui s’en charge*:

    Code :
    1
    2
    3
    4
    5
    6
    def my_print(text):
        import sys
        print text
        sys.stdout.flush()
     
    my_print("A small test")
    Incantation : Méchant forum, arrête de transformer toutes mes espaces insécables en astérisques

  4. #4
    Modérateur

    Homme Profil pro
    Architecte technique
    Inscrit en
    juin 2008
    Messages
    5 462
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Industrie

    Informations forums :
    Inscription : juin 2008
    Messages : 5 462
    Points : 8 259
    Points
    8 259

    Par défaut

    Salut,

    Citation Envoyé par develuc Voir le message
    Quand je lance un script, il s'exécute, et ensuite, Python m'affiche tous les "print" demandés, les uns à la suite des autres.
    Comment faire pour afficher les print au fur et à mesure de leur "création", sans attendre la fin du programme?
    "print" affiche normalement la chaîne de caractère immédiatement sur la console.
    Si ce n'est pas le cas, c'est qu'un "contexte" modifie ce comportement.
    (est-on sur de parler de la fonction Python "print"?)

    Exemple de "contexte".
    Si vous lancer l'exécution du script dans un IDE (Netbeans, Eclipse, Emacs,...), celui ci va exécuter le programme dans un threads détaché et récupérer stdin, stderr (là où vont les "print") à la fin. Comportement qu'on n'a pas lorsqu'on lance le programme en mode console (quelque soit l'OS).

    - W
    Architectures Post-Modernes

  5. #5
    Membre à l'essai
    Homme Profil pro luc
    retraité
    Inscrit en
    décembre 2011
    Messages
    40
    Détails du profil
    Informations personnelles :
    Nom : Homme luc
    Localisation : Brésil

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : décembre 2011
    Messages : 40
    Points : 21
    Points
    21

    Par défaut

    Je suis passé en Linux (moi aussi ras le bol des cafouillages Windows!) depuis trois semaines.
    J'avais un pb (sous windows) que je viens de vous soumettre. Mais à ma grande honte, ce pb n'existe plus!
    Sans doute mont29 a-t-il raison et est-ce un pb windows!
    Je travaille sur Linux et l'IDE de python3.3, et maintenant ça fonctionne!
    Alors merci de vous être rapidement penchés sur mon pb.

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

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •