print, sys.stdout & % complete HELP
greg Landrum
greglandrum at earthlink.net
Wed May 24 10:01:42 EDT 2000
bragib at my-deja.com wrote:
>
> Hi:
>
> I am trying to print a status message to a terminal window which tells
> the user percent complete.
>
> This is the way I went about it in pseudo terms
>
> def percentComplete(lineNo, lines, fileName):
> msg = 'Scanning file %s, %i%s complete.'
> percentComplete = int(round(100*lineNo/lines))
> if divmod(percentComplete, 5)[1]: # every 5%
> backspace = '\b'*len(oldStatus)
> msg = backspace + msg %(fileName, percentComplete, '%')
> print msg,
> oldStatus = msg
>
> Now I have the problem as follows:
> prompt>Scanning file longLongLongName.fil, 100% complete.
>
> Then when I start scanning a file witha shorter name I
> get
> prompt>Scanning file short.fil, 20% complete. ete. <--- Oops something
> did not get erased.
I could not get things to work properly with print (I assume this is due
to buffering problems) under kdeterm, but the following works just fine
for me:
for i in xrange(100):
sys.stdout.write('\rDoing %d'%i)
sys.stdout.flush()
time.sleep(.1)
-greg
--
greg Landrum (greglandrum at earthlink.net)
Software Carpenter/Computational Chemist
More information about the Python-list
mailing list