Retourner aux forums || Retourner au forum Programmation.python
je voudrais faire quelque chose du style
import time
print "blablabla.....",
time.sleep(1)
print "taratata!"
et que ça me donne au final
"blablabla..." puis, une seconde plus tard "taratata" qui viens se coller derrière...
seulement ça attends la seconde et ça affiche tout d'un coup...
y'a moyen ou pas ?
si oui comment? (pour ce qui repondent juste "oui")
merci
> Lire le message (5 commentaires, moyenne: 1,4).
heu...
oui enfin bon le titre a pas vraiment à voir...
désolé je suis fatigué
c'est qu'en fait je pensais à une manière de faire le schmile et je vous en ai marqué une autre
ce à quoi je pensais originelement :
import time
print "blablabla..."
time.sleep(1)
print "blablabla...taratata"
mais c'est plus lourd et ça doit etre pour ça que j'ai fait l'échange automatiquement sans y penser...
je suis pas fou !
si quelqu'un a une solution quand même à l'un ou l'autre des façons ...
-
[^]Re: heu...
Posté par Treepwood (page perso, ) le 05/07/2006 à 20:14. (lien). Évalué à 1.décidement... ça m'apprendra à ecrire trop vite
import time
print "blablabla...",
time.sleep(1)
print "\r"
print "blablabla...taratata"
pitié pas de moinssage-
[^]Re: heu...
Posté par Sebastien Binet () le 07/07/2006 à 23:09. (lien). Évalué à 1.Je suppose qu'un truc de ce genre devrait "faire la rue Michel":
import sys,time,os sys.stdout.write("downloading kernel.3.0.0 from IPoT ") sys.stdout.flush() for i in range(10): sys.stdout.write(".") sys.stdout.flush() time.sleep(0.1) sys.stdout.write( "".join( [" [OK]", os.linesep] ) ) sys.stdout.flush() print "You can proceed with installation."
-
flush
ce que tu veux, c'est flusher stdout après le premier print.
python "flushe" automatiquement quand tu ajoute un retour chariot, c'est pourquoi ta seconde solution marche.
Tu peut aussi forcer python a ne pas bufferiser stdout (option -u en ligne de commande)
ou le former dans le programme a flusher quand tu veux, avec
import time,sys
print "aa"
sys.stdout.flush()
time.sleep(1)
print "bb"
sys.stdout.flush()
les "aa" et "bb" s'afficheront dans les temps.
(en fait, ça se passe en gros comme en C...)
C'est ça que tu veux faire ?
Bon, j'ai commencé le Python y a deux jours, alors je vois pas ce qui est difficile.
je fais:
from time import sleep
print "blablabla...",
sleep(1)
print "taratata"
et ça à l'air de correspondre à ce que tu souhaites.
Si c'est le cas, tant mieux ! ;D
Revenir en haut de page || Retourner aux forums || Retourner au forum Programmation.python



Cette discussion est archivée, il n'est plus possible de laisser des commentaires.
Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.