help with printing to stdout...

Lie Ryan lie.1296 at gmail.com
Sun Mar 8 13:45:40 CET 2009


Chris Rebert wrote:
> On Sun, Mar 8, 2009 at 1:37 AM, Daniel Dalton <d.dalton at iinet.net.au> wrote:
>> Hi,
>>
>> I've got a program here that prints out a percentage of it's
>> completion. Currently with my implimentation it prints like this:
>> 0%
>> 1%
>> 2%
>> 3%
>> 4%
>>
>> etc taking up lots and lots of lines of output... So, how can I make it
>> write the percentage on the same line eg.
>> while working:
>>  print percent
> 
> Use the carriage return character to overwrite the line (you'll need
> to forego `print`):
> 
> from sys import stdout
> while working:
>     stdout.write('\r'+percent)
> 
> Note that you'll need to ensure that `percent` has constant length
> throughout the loop.
> 

or "erase" the previous character first with whitespace
stdout.write('\r    \r%s%%' % percent).

curse might be more reliable for this kind of thing (though it is 
definitely an overkill)

Note: \r doesn't work on IDLE



More information about the Python-list mailing list