sys.stdout is not flushed
Diez B. Roggisch
deets at nospam.web.de
Mon Nov 23 17:08:25 EST 2009
Jankins schrieb:
> I am trying to use sys.stdout to print out "process-bar" like:
> -->1%
>
> Here is my program ‘test.py’:
>
> from sys import stdout
> for v in range(10):
> stdout.write('-->%d' % v)
> stdout.flush()
> else:
> stdout.write('done!')
> #end for
>
> Then, I use 'python -u test.py' to run this script. But what I get
> is :
> -->0-->1-->2-->3-->4-->5-->6-->7-->8-->9done!
>
> I am suppose to get 'done!'.
>
> Can anybody help me about this?
You misunderstand what "flush" means. It is not about clearing the
screen, or the line.
Try printing
stdout.write('\r-->%d')
Diez
More information about the Python-list
mailing list