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.
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

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to