Terminal application with non-standard print
Hans Mulder
hansmu at xs4all.nl
Mon Jan 25 15:55:03 EST 2010
Grant Edwards wrote:
> On 2010-01-24, R?mi <babedoudi at 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.
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()
Hope this helps,
-- HansM
More information about the Python-list
mailing list