Barra de progreso en Python
-
Utilice el módulo
tdqm
en Python para crear barras de progreso -
Utilice el módulo
progressbar
en Python para crear barras de progreso - Cree su propia función en Python para crear barras de progreso
En el mundo de la programación, trabajamos con grandes volúmenes de código. Un programa puede tardar mucho en compilarse y ejecutarse. Por lo tanto, es un poco útil saber cuánto se ha avanzado y el tiempo estimado de finalización del programa. Para tales situaciones, podemos usar barras de progreso en Python. Además, pueden ayudarnos a identificar si nuestro programa se ha detenido a la mitad o no.
En Python, tenemos muchas bibliotecas disponibles que pueden ayudarnos a crear una barra de progreso simple para nuestro programa que nos ayude con esto. Discutiremos cada método uno por uno en este tutorial.
Utilice el módulo tdqm
en Python para crear barras de progreso
La biblioteca tdqm
tiene un marco rápido y eficiente para crear barras de progreso básicas. Funciona bien en terminales, portátiles Python y es compatible con Windows, Linux y macOS.
En el siguiente código, creamos una barra de progreso simple usando funciones de este módulo.
from time import sleep
from tqdm import tqdm
for i in tqdm(range(10)):
sleep(0.2)
Iteramos a través de un bucle, y en cada iteración, la barra de progreso también se incrementa. La función sleep()
se utiliza para pausar el compilador durante algunos segundos especificados. Tenga en cuenta que, de forma predeterminada, la barra muestra el tiempo restante, las iteraciones por segundo y el porcentaje.
De todos los módulos discutidos en este tutorial, este es el que tiene menos gastos generales.
Utilice el módulo progressbar
en Python para crear barras de progreso
El módulo progressbar
hace casi todo como el módulo tdqm
. Además de esto, tiene opciones para animar su barra de progreso y usar los widgets que se muestran en la barra de progreso.
El siguiente código muestra un ejemplo de esto.
import time
import progressbar
for i in progressbar.progressbar(range(100)):
time.sleep(0.02)
La progressbar2
también existe en Python y es una bifurcación de la progressbar
. Es extremadamente popular debido a sus características poderosas y personalizables. También admite declaraciones de impresión con la barra de progreso. En el lado negativo, este módulo no se ha mantenido en años.
Tenga en cuenta que hay más bibliotecas disponibles como alive-progress
, progress
que pueden ayudar a crear las barras de progreso, pero estas dos son las más utilizadas. La única diferencia entre ellos son las animaciones y otras personalizaciones que ofrecen estas bibliotecas.
Cree su propia función en Python para crear barras de progreso
También podemos crear una función simple que puede parecerse a una barra de progreso. El siguiente código implementa esto.
import time
import sys
def progressbar(it, prefix="", size=60, file=sys.stdout):
count = len(it)
def show(j):
x = int(size * j / count)
file.write("%s[%s%s] %i/%i\r" % (prefix, "#" * x, "." * (size - x), j, count))
file.flush()
file.write("\n")
show(0)
for i, item in enumerate(it):
yield item
show(i + 1)
file.write("\n")
file.flush()
for i in progressbar(range(15), "Computing: ", 40):
time.sleep(0.1)
Producción :
Computing: [........................................] 0/15
Computing: [##......................................] 1/15
Computing: [#####...................................] 2/15
Computing: [########................................] 3/15
Computing: [##########..............................] 4/15
Computing: [#############...........................] 5/15
Computing: [################........................] 6/15
Computing: [##################......................] 7/15
Computing: [#####################...................] 8/15
Computing: [########################................] 9/15
Computing: [##########################..............] 10/15
Computing: [#############################...........] 11/15
Computing: [################################........] 12/15
Computing: [##################################......] 13/15
Computing: [#####################################...] 14/15
Computing: [########################################] 15/15
Calculamos el total de iteraciones necesarias y, en cada iteración, incrementamos el símbolo #
y lo imprimimos.
Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.
LinkedIn