Barra de Progreso en Python

En este artículo aprenderás a implementar una barra de progreso en tus proyectos de Python. Una barra de progreso proporciona una representación visual del progreso de una tarea en términos de porcentaje, lo que ayuda a los usuarios a sentirse más cómodos al esperar la finalización de una tarea prolongada. Python tiene varias bibliotecas que facilitan la creación de una barra de progreso, y aquí te presentaremos algunas de ellas.
Bibliotecas
1. ProgressBar
La biblioteca ProgressBar es una de las más comunes en Python. Esta biblioteca proporciona una clase ProgressBar, que puedes utilizar para crear una barra de progreso. Para usarla, primero debes instalarla ya sea a través de pip o con la herramienta de administración de paquetes de tu sistema operativo.
Una vez instalada, puedes crear una barra de progreso con el siguiente código:
from progressbar import ProgressBar
pbar = ProgressBar()
for i in pbar(range(100)):
# Código a ejecutar aquí
pass
2. TQDM
TQDM es otra biblioteca Python común que se utiliza para la creación de barras de progreso. Esta biblioteca también es fácil de instalar a través de pip o de la herramienta de administración de paquetes de tu sistema operativo.
El uso de TQDM es igualmente sencillo. Echa un vistazo al siguiente ejemplo:
from tqdm import tqdm
for i in tqdm(range(100)):
# Código a ejecutar aquí
pass
Personalización de la barra de progreso
Las bibliotecas ProgressBar y TQDM también permiten personalizar la barra de progreso, lo que da una gran flexibilidad a la hora de crear una buena experiencia de usuario. Entre las personalizaciones que se pueden hacer, están:
- Cambiar el estilo de la barra
- Añadir texto adicional y etiquetas
- Establecer el tiempo y la velocidad de la barra
Ejemplos de código
A continuación, se presentan varios ejemplos adicionales de código para crear barras de progreso con ambos bibliotecas.
ProgressBar
- Ejemplo 1: Crear una barra de progreso con texto adicional
- Ejemplo 2: Cambiar el estilo de la barra
from progressbar import ProgressBar, FormatLabel
pbar = ProgressBar(widgets=[FormatLabel('Elapsed time: %(elapsed)s')]).start()
for i in pbar(range(100)):
# Código a ejecutar aquí
pass
from progressbar import ProgressBar, ReverseBar, RotatingMarker
pbar = ProgressBar(widgets=[ReverseBar('=', '>', left='[', right=']'), ' ',
RotatingMarker()]).start()
for i in pbar(range(100)):
# Código a ejecutar aquí
pass
TQDM
- Ejemplo 1: Establecer la velocidad de la barra de progreso
- Ejemplo 2: Cambiar el estilo de la barra
from tqdm import trange, tqdm
for i in trange(100, desc='Progreso', mininterval=0.5):
# Código a ejecutar aquí
pass
from tqdm import tqdm
import time
for i in tqdm(range(10), bar_format="{l_bar}%s{bar}%s{r_bar}" % (Fore.RED, Fore.RESET)):
time.sleep(0.5)
Conclusión
En este artículo, hemos visto cómo crear barras de progreso en Python usando las bibliotecas ProgressBar y TQDM. También hemos explorado algunas de las personalizaciones que se pueden hacer para mejorar la experiencia del usuario. La barra de progreso es una herramienta útil para mejorar la interacción de tus proyectos de Python con los usuarios, y esperamos que esta guía te ayude a utilizarla de manera efectiva.
Preguntas frecuentes
1. ¿Puedo utilizar una barra de progreso en una tarea que no tiene un número fijo de iteraciones?
Sí, puedes utilizar una barra de progreso en una tarea con iteraciones desconocidas. Ambas bibliotecas ProgressBar y TQDM tienen formas de manejar este escenario.
2. ¿Puedo personalizar más allá de las opciones de estilo ofrecidas por estas bibliotecas?
Sí, puedes personalizar una barra de progreso aún más allá de las opciones de estilo ofrecidas por estas bibliotecas. Puedes crear una clase personalizada y sobrescribir los métodos necesarios para adaptar completamente la biblioteca a tus necesidades.
3. ¿Qué otros usos puede tener una barra de progreso en programación?
Una barra de progreso puede ser útil en muchos contextos de programación, especialmente en tareas prolongadas o de alto rendimiento. Por ejemplo, se puede utilizar en la extracción de datos; en diseño gráfico o juegos para mostrar el progreso en la carga de texturas, modelos y animaciones; como retroalimentación en respuesta a la interacción del usuario; o para la ejecución de tareas de mantenimiento prolongadas, que informan al usuario sobre el estado actual de la tarea.
[nekopost slugs="pandas-fusionar-asof,use-grupo-de-pandas-python,mensaje-de-excepcion-de-impresion-de-python,ordenar-lambda-python,python-math-log,indice-de-listas-fuera-de-la-gama-python,bytearray-python,convertir-la-lista-de-elementos-en-minusculas-python,python-elimina-newline-de-una-cadena"]

Deja una respuesta