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)
Created
May 10, 2021 04:04
-
-
Save NekoShooter/b82629b65085a25f96a7faea5c7e6964 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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
