On 2010-01-25, Hans Mulder <han...@xs4all.nl> wrote: > Grant Edwards wrote: >> On 2010-01-24, R?mi <babedo...@yahoo.fr> wrote: >> >>> I would like to do a Python application that prints data to stdout, but >>> not the common way. I do not want the lines to be printed after each >>> other, but the old lines to be replaced with the new ones, like wget >>> does it for example (when downloading a file you can see the percentage >>> increasing on a same line). >> >> sys.stdout.write("Here's the first line") >> time.sleep(1) >> sys.stdout.write("\rAnd this line replaces it.") > > That does not work on my system, because sys.stdout is line buffered.
That's correct of course. > This causes both strings to be written when sys.stdout is closed because > Python is shutting down. > > This works better: > > import sys, time > > sys.stdout.write("Here's the first line") > sys.stdout.flush() > time.sleep(1) > sys.stdout.write("\rAnd this line replaces it.") > sys.stdout.flush() Or you can tell Python to do unbuffered output: #!/usr/bin/python -u -- Grant Edwards grante Yow! I'm using my X-RAY at VISION to obtain a rare visi.com glimpse of the INNER WORKINGS of this POTATO!! -- http://mail.python.org/mailman/listinfo/python-list