sys.stdout is not flushed

Cousin Stanley cousinstanley at gmail.com
Mon Nov 23 21:32:50 EST 2009


>> ....
>> You misunderstand what "flush" means. It is not about 
>> clearing the screen, or the line.
>>
>> Try printing
>>
>>    stdout.write('\r-->%d')
>>
>> Diez
>
>
> But there is still a problem. When you use control character '\r', 
> you actually move to the head of the current buffer line and 
> overwrite it.
>
> So if I use this way:
> for i in range(100, 0,-1)
>
> The tail of the buffer is not overwrote.
> ....

  The following version works ok for me
  using python2.5 under debian linux ....

import sys
import time

print

for n in range( 11 ) :
    sys.stdout.write( '\r    Working ----> %d ' % n )
    sys.stdout.flush()
    time.sleep( 1 )

else :
    print "\n"
    print "    That's all, folks !"
    print "    Adios ........... "


-- 
Stanley C. Kitching
Human Being
Phoenix, Arizona




More information about the Python-list mailing list