Précédent   Forum du club des développeurs et IT Pro > Autres langages > Python & Zope > Général Python
Général Python Forum d'entraide sur les fondamentaux du langage Python, syntaxe, POO, bibliothèque standard, ...
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 21/11/2012, 14h10   #1
develuc
Futur Membre du Club
 
Homme luc
retraité
Inscription : décembre 2011
Messages : 13
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 : 13
Points : 15
Points : 15
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
develuc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2012, 15h31   #2
sir_nebuchadnezzar
Membre à l'essai
 
Homme Etienne
Inscription : 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 : 20
Points : 20
Envoyer un message via MSN à sir_nebuchadnezzar
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.
sir_nebuchadnezzar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2012, 16h59   #3
mont29
Membre Expert
 
Homme Bastien Montagne
Diverses et multiples
Inscription : mai 2008
Messages : 620
Détails du profil
Informations personnelles :
Nom : Homme Bastien Montagne
Localisation : France

Informations professionnelles :
Activité : Diverses et multiples

Informations forums :
Inscription : mai 2008
Messages : 620
Points : 1 029
Points : 1 029
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
mont29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2012, 21h30   #4
wiztricks
Expert Confirmé Sénior
 
Inscription : juin 2008
Messages : 3 697
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 3 697
Points : 4 526
Points : 4 526
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
wiztricks est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2012, 16h42   #5
develuc
Futur Membre du Club
 
Homme luc
retraité
Inscription : décembre 2011
Messages : 13
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 : 13
Points : 15
Points : 15
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.
develuc est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 21h17.


 
 
 
 
Partenaires

Hébergement Web