Cada vez que descarga un archivo o inicia un juego, ve una animación estética que se actualiza hasta que se completa. Esta es una barra de progreso. Una barra de progreso es un elemento gráfico que se utiliza para visualizar el progreso de una tarea, como descargar, cargar o transferir archivos.

Hay dos tipos de barras de progreso: determinadas e indeterminadas. Las barras de progreso determinadas rastrean el progreso de una tarea a lo largo del tiempo. Las barras de progreso indeterminadas se ejecutan infinitamente con una animación en bucle.

Entonces, ¿cómo puede crear una barra de progreso determinada en un programa CLI de Python?

¿Qué es el módulo tqdm?

tqdm es un módulo mantenido principalmente por Casper da Costa-Luis junto con otros diez miembros. tqdm deriva de la palabra árabe taqaddum que puede significar "progreso" y es una abreviatura de "Te quiero mucho" en español (te quiero demasiado).

Con el módulo tqdm puede crear una barra de progreso atractiva y funcional directamente en su terminal. Para instalar el módulo tqdm, abra su terminal y ejecute:

instagram viewer
pepita instalar tqdm

¿Qué es el módulo de tiempo?

El módulo de utilidad estándar de Python incluye el modulo de tiempo por defecto, así que no tienes que instalarlo. Puede usar la función de suspensión provista en el módulo de tiempo para agregar demoras a sus aplicaciones, lo que ayudará a visualizar el progreso de la barra.

Puede usar el módulo de tiempo para obtener la fecha y la hora, programar tareas y crear aplicaciones útiles como un despertador sencillo, o un cronómetro.

Cómo agregar una barra de progreso y personalizarla

La barra de progreso predeterminada es fácil de usar y puede personalizarla con varias opciones.

1. Barra de progreso simple

Puede crear una barra de progreso simple importando la clase tqdm del módulo tqdm y la función de suspensión del módulo de tiempo. Use un bucle for e itere tqdm en su rango deseado.

El rango puede ser cualquier cosa hasta 9e9 (nueve mil millones). Pase la cantidad de segundos a la función de suspensión para agregar un retraso para que pueda visualizar y ver la barra de progreso en acción.

Puede implementar una barra de progreso simple como esta:

de tqdm importar tqdm
de tiempo importar dormir

para i en tqdm (rango (100)):
dormir(.1)

En lugar de importar tqdm, puede importar tqdm desde el módulo tqdm para combinar tqdm y range y pasar el parámetro directamente.

de tqdm importar extraño
de tiempo importar dormir

para i en rango (100):
dormir(.1)

El resultado que obtiene al crear una barra de progreso simple se ve así:

Esta salida incluye versiones gráficas y textuales del progreso, junto con estadísticas de tiempo.

2. Barra de progreso con texto de descripción

Puede agregar una etiqueta descriptiva a la barra de progreso para explicar su propósito. Pase el texto que desea mostrar entre comillas dobles como el descripción parámetro:

para i en tqdm (rango (0, 10), desc ="Progreso: "):
dormir(.4)

El resultado que obtiene al agregar un texto de descripción junto con la barra de progreso se ve así:

3. Barra de progreso con ancho personalizado

De forma predeterminada, el ancho de la barra de progreso se establece de forma dinámica al tamaño de la ventana de resultados. Puedes personalizarlo a tu gusto con la ayuda del ncoles parámetro.

Puede implementar una barra de progreso con ancho personalizado como:

para i en tqdm (rango (0, 10), ncols = 100, desc ="Progreso: "):
dormir(.1)

El resultado que obtiene al alargar el ancho de la barra de progreso se ve así:

4. Barra de progreso usando color

Puede personalizar el color de la barra de progreso utilizando el parámetro de color. Puede hacer esto de dos maneras:

  1. Nombre del color: Puede usar el nombre del color, como verde, negro, cian y más.
  2. Código hexadecimal:El código hexadecimal es un formato en el que la computadora almacena el color. Puede indicar el color hexadecimal con un hash (#) seguido de 6 caracteres en hexadecimal (0-9, a-f). El código hexadecimal #000000 representa el negro mientras que #ffffff representa el blanco. Variando la intensidad de estos números se obtienen diferentes tonalidades de colores. Puedes usar el Herramienta Selector de color de Google para seleccionar y pegar el color del código hexadecimal.

Puede implementar una barra de progreso con colores personalizados como:

para i en tqdm (rango (0, 100), color="#00ffff", desc ="Progreso: "):
dormir(.1)

El resultado que obtienes al cambiar el color de la barra de progreso:

5. Barra de progreso con intervalo mínimo

Puede crear una barra de progreso que progrese y se actualice con un intervalo mínimo en lugar de la configuración predeterminada. Puede pasar un número como 1,5 o 2 que servirá como intervalo entre dos actualizaciones. El valor predeterminado del intervalo mínimo es 0,1.

Puede implementar una barra de progreso con un intervalo mínimo como:

para i en tqdm (rango (0, 100), mininterval = 2, desc ="Progreso: "):
dormir(.1)

El resultado que obtiene al especificar un intervalo mínimo en la barra de progreso:

6. Barra de progreso usando caracteres ASCII

Puede crear una barra de progreso utilizando caracteres ASCII en lugar de las barras habituales que ve en la pantalla. Para utilizar caracteres ASCII, configure el ascii parámetro al formato deseado.

Si usas algo como 12345*, cada una de las columnas del rango itera de uno a asterisco secuencialmente. Si bien es genial y personalizable, asegúrese de que sea fácil de usar cuando lo use en aplicaciones reales.

Puede implementar una barra de progreso usando caracteres ASCII como:

para i en tqdm (rango (0, 100), ascii ="12345*"):
dormir(.1)

El resultado que obtiene al usar caracteres ASCII en la barra de progreso se ve así:

7. Barra de progreso utilizando el punto de inicio especificado

En lugar de comenzar una barra de progreso desde cero, puede establecer un punto de inicio específico para la barra de progreso. Pase un valor inicial como 50 al inicial parámetro.

Puede implementar una barra de progreso utilizando un punto de inicio específico como:

para i en tqdm (rango (0, 100), inicial = 50, desc ="Progreso: "):
dormir(.1)

El resultado que obtiene al iniciar la barra de progreso en un punto específico:

8. Barra de progreso con un número específico de iteraciones

Puede crear una barra de progreso que ejecute un número específico de iteraciones. Si desea ejecutar 500 iteraciones de 50000, pase 500 como el rango y 50000 como el número total de iteraciones al total parámetro.

Puede implementar una barra de progreso usando un número específico de iteraciones como:

para i en tqdm (rango (0, 500), total = 50000, desc ="Progreso: "):
dormir(.1)

El resultado que obtiene usando una barra de progreso con un número específico de iteraciones:

Aplicaciones de la Barra de Progreso

Verá barras de progreso en varias situaciones, como la reproducción de un reproductor multimedia o mostrando los pasos a través de un formulario en línea.

Si bien una barra de progreso parece estética, hace un trabajo importante al proporcionar comentarios al usuario, en ausencia de los cuales abandonaría el sitio web.