Skip to content

Instantly share code, notes, and snippets.

@NekoShooter
Created May 10, 2021 04:04
Show Gist options
  • Select an option

  • Save NekoShooter/b82629b65085a25f96a7faea5c7e6964 to your computer and use it in GitHub Desktop.

Select an option

Save NekoShooter/b82629b65085a25f96a7faea5c7e6964 to your computer and use it in GitHub Desktop.

Codigo de una barra de carga en Python

 
Declaras la barra, opcionalmente puedes ingresar la dimencion del barra
bar = BarraDeProgreso(dimencion_de_la_barra_opcinal)
Para cargar la barra solo ingresas el rango o lista de elementos que esta va a tener
for i in bar.Cargar(range(10000)):
y finalmente pa mostrar la barra lo haces con la funcion MostrarProgreso puedes mostrar de forma opcional un texto y los elementos que esta cargando
bar.MostrarProgreso("progreso",i)

barra de carga

class BarraDeProgreso:
def __init__(self,largo = 20):
if not (0 < largo <= 100):
largo = 20
self.__INICIADOR = False
self.__CONTADOR = 0
self.__DIMENCION = 0
self.__PORCENTAJE = 0
self.__IND = 0
self.__BARRA = "".join(["·"] * largo)
self.__BLOQUES = True
self.__TAM = largo
def Cargar(self,valor = None):
self.__init__(self.__TAM)
try:
self.__DIMENCION = len(valor)
self.__PORCENTAJE = 100/self.__DIMENCION
self.__BLOQUES = self.__DIMENCION/self.__TAM
self.__INICIADOR = True
except TypeError:
return valor
if tuple == type(valor) == list or dict == type(valor) == str:
return valor
else:
return list(valor)
def MostrarProgreso(self,mensaje = "",Elementos = " "):
if self.__INICIADOR:
self.__CONTADOR += 1
Progreso = round(self.__CONTADOR * self.__PORCENTAJE,1)
if self.__BLOQUES <= self.__CONTADOR or self.__CONTADOR == self.__DIMENCION:
self.__IND = int((self.__TAM/self.__DIMENCION)*self.__CONTADOR)
self.__BARRA = (["█"] * self.__IND) + (["·"] * (self.__TAM - self.__IND))
self.__BARRA = "".join(self.__BARRA)
self.__BLOQUES += self.__DIMENCION/self.__TAM
if Progreso == 100:
Elementos = str(Elementos) + "\n"
self.__INICIADOR = False
self.__IND = 0
self.__BLOQUES = True
print ("\r",mensaje,self.__BARRA,Progreso,"% ", end = str(Elementos))
else:
if self.__IND > self.__TAM -1:
self.__IND = 0
self.__BLOQUES = not self.__BLOQUES
if self.__BLOQUES:
self.__BARRA = (["·"] * self.__IND) + ["█"] + (["·"] * (self.__TAM -1 - self.__IND))
else:
self.__BARRA = (["·"] * (self.__TAM -1 - self.__IND) + ["█"] + (["·"] * self.__IND))
self.__BARRA = "".join(self.__BARRA)
self.__IND +=1
print ("\r",mensaje,self.__BARRA, end = str(Elementos) + " ")
#demo
bar = BarraDeProgreso()
for i in bar.Cargar(range(10000)):
bar.MostrarProgreso("progreso",i)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment