Barra de progreso en ASCII

Oscar Merchan o.merchan en terra.es
Jue Feb 19 11:15:33 CET 2004



Muy buenas a todos.

Esta es la cuestion que hoy me trae por aqui. ¿ Alguien ha hecho o ha probado alguna barra de progreso en ASCII ?.

Necestio poner una, en un programa que tengo casi terminado, mas que nada para que no de la sensacion que la aplicaicon se ha muerto o se deja el equipo mas tirado que una colilla en la acera. He encontrado este codigo buscando por el google pero no consigo uqe vaya del todo bien, ya que 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 del color, es otra funcion que encontre por ahi, para poder poner color al programa hecho en ascii, si alquien lo quiere no tiene mas que pedirlo.

Alguien sabe lo que esta mal, alguien tiene algo mejor ??


Saludos, Óscar Merchan.




Más información sobre la lista de distribución Python-es