Barra de progreso en ASCII
Chema Cortes
ch3m4 en ch3m4.org
Jue Feb 19 11:43:25 CET 2004
Oscar Merchan escribió:
> Esta es la cuestion que hoy me trae por aqui. ¿ Alguien ha hecho o ha probado alguna barra de progreso en ASCII ?.
>
> [...] la barra cuando va subiendo, me rellena tres lineas en vez de lo que ocupa la barra.
>
> def progress(ratio, length=40, col=1, cols=("lgreen", "red", "blue"),
> nocol="=."):
> if ratio > 10:
> ratio = 10
> elchar, leftchar = nocol
> elapsed = int(round(ratio*length))
> left = length - elapsed
> bar = elchar*elapsed + leftchar*left
> bar = bar[:length]
> if col:
> c_elapsed, c_left, perc = cols
> bar = color(' '*elapsed, "gray", c_elapsed)
> bar = bar + color(' '*left, "gray", c_left)
> else:
> bar = elchar*elapsed + leftchar*left
> return bar
>
> print "\033[5;2H"+color("0%","white")
> print "\033[5;66H"+color("100%","white")
> print "\033[5;5H"+progress(progreso)
Lo que te pasa es que el comando 'print' añade un salto de línea. Mejor
si pones una coma al final o, mucho mejor, emplea 'sys.stdout.write()'
para sacer la barra.
--
Res publica non dominetur
Más información sobre la lista de distribución Python-es