Barre de progression
Bengt Richter
bokr at oz.net
Thu Oct 17 23:41:18 EDT 2002
On Fri, 18 Oct 2002 01:10:19 +0200, Meles MELES <meles at free.fr> wrote:
>Bonsoir à tous,
> je suis à la recherche d'exemple d'implémentation d'une ba
>rre de progression en mode console (ou, à défaut en mode graphique) un
>peu du style de celle de urpmi lors de l'installation d'un paquet a
>vec la mandrake. Si en plus, à la fin de celle ci, le pourcentage de t
>ravail effectué pouvait s'afficher, ce serai le bonheur.
>
>L'idéal pour moi serait de voir un code tout fait pour m'en inspirer, au
>pire un peu de docs derait l'affaire.
>
If you just want to show progress on the last line of console window,
you can just rewrite the last line with a \r in front and no \n at the end,
e.g.,
class ConsoleProgress:
import sys
def __init__(self, start, finish):
self.start = float(start)
self.interval = float(finish-start)/100.0
if self.interval <= 0: raise ValueError, 'Bad interval'
def __call__(self, now):
n = int(0.5 +(now-self.start)/self.interval)
if n>100: n = 100
self.sys.stdout.write('\r%3d%% %s' % (n, 'o'*int(n/2.)+'.'[n%2==0:] +'!'[n!=100:]))
def test():
import time
now = time.time()
cp = ConsoleProgress(now,now+8.0)
for pc in range(81):
cp(time.time())
time.sleep(0.1)
print '\nDone ;-)'
test()
Is that something like what you had in mind?
Regards,
Bengt Richter
More information about the Python-list
mailing list