Creeu una barra de progrés a la CLI de Python

Creeu una barra de progrés a la CLI de Python

Sempre que baixeu un fitxer o inicieu un joc, veureu una animació estètica que s'actualitza fins que s'ha completat. Aquesta és una barra de progrés. Una barra de progrés és un element gràfic que s'utilitza per visualitzar el progrés d'una tasca com ara baixar, carregar o transferir fitxers.





Hi ha dos tipus de barres de progrés: determinades i indeterminades. Les barres de progrés determinades fan un seguiment del progrés d'una tasca al llarg del temps. Les barres de progrés indeterminades funcionen infinitament amb una animació en bucle.





MAKEUSEO VÍDEO DEL DIA

Aleshores, com podeu crear una barra de progrés determinada en un programa CLI de Python?





Què és el mòdul tqdm?

tqdm és un mòdul mantingut principalment per Casper da Costa-Luis juntament amb deu membres més. tqdm deriva de la paraula àrab taqaddum que pot significar 'progrés' i és una abreviatura de 't'estimo tant' en espanyol (te quiero demasiado).

Amb el mòdul tqdm podeu crear una barra de progrés atractiva i funcional directament al vostre terminal. Per instal·lar el mòdul tqdm, obriu el vostre terminal i executeu:



pip install tqdm

Quin és el mòdul de temps?

El mòdul d'utilitat estàndard de Python inclou el mòdul de temps per defecte, de manera que no cal que l'instal·leu. Podeu utilitzar la funció de repòs proporcionada al mòdul de temps per afegir retard a les vostres aplicacions que us ajudaran a visualitzar el progrés de la barra.

Podeu utilitzar el mòdul d'hora per obtenir la data i l'hora, programar tasques i crear aplicacions útils com ara a despertador senzill , o un cronòmetre.





Com afegir una barra de progrés i personalitzar-la

La barra de progrés predeterminada és fàcil d'utilitzar i podeu personalitzar-la amb diverses opcions.

1. Barra de progrés simple

Podeu crear una barra de progrés senzilla important la classe tqdm del mòdul tqdm i la funció de repòs del mòdul de temps. Utilitzeu un bucle for i itereu tqdm al vostre rang desitjat.





El rang pot ser de fins a 9e9 (nou mil milions). Passeu el nombre de segons a la funció de repòs per afegir un retard perquè pugueu visualitzar i veure la barra de progrés en acció.

Podeu implementar una barra de progrés senzilla com aquesta:

coses per instal·lar en un nou PC
from tqdm import tqdm 
from time import sleep

for i in tqdm(range(100)):
sleep(.1)

En lloc d'importar tqdm, podeu importar trange des del mòdul tqdm per combinar tqdm i rang i passar el paràmetre directament.

from tqdm import trange 
from time import sleep

for i in trange(100):
sleep(.1)

La sortida que obteniu en crear una barra de progrés senzilla és la següent:

  Barra de progrés senzilla

Aquesta sortida inclou versions gràfiques i textuals del progrés, juntament amb estadístiques de temps.

2. Barra de progrés amb text de descripció

Podeu afegir una etiqueta descriptiva a la barra de progrés per explicar-ne el propòsit. Passeu el text que voleu mostrar embolicat entre cometes dobles com a desc paràmetre:

for i in tqdm(range(0, 10), desc ="Progress: "): 
sleep(.4)

La sortida que obteniu en afegir un text de descripció juntament amb la barra de progrés té aquest aspecte:

  Barra de progrés amb text

3. Barra de progrés amb una amplada personalitzada

Per defecte, l'amplada de la barra de progrés s'estableix dinàmicament a la mida de la finestra de sortida. Podeu personalitzar-lo segons el vostre gust amb l'ajuda de la ncols paràmetre.

Podeu implementar una barra de progrés amb una amplada personalitzada com:

for i in tqdm(range(0, 10), ncols = 100, desc ="Progress: "): 
sleep(.1)

La sortida que obteniu en allargar l'amplada de la barra de progrés és així:

  Barra de progrés amb descripció i ncols

4. Barra de progrés amb color

Podeu personalitzar el color de la barra de progrés mitjançant el paràmetre de color. Podeu fer-ho de dues maneres:

  1. Nom del color: Podeu utilitzar el nom del color, com ara verd, negre, cian i molt més.
  2. Codi hexadecimal: El codi hexadecimal és un format on l'ordinador emmagatzema el color. Podeu indicar el color hexadecimal amb un hash (#) seguit de 6 caràcters en hexadecimal (0-9, a-f). El codi hexadecimal #000000 representa el negre mentre que #ffffff representa el blanc. Variant la intensitat d'aquests números, s'obtenen diferents matisos de colors. Podeu utilitzar el Eina de selecció de colors de Google per seleccionar i enganxar el color del codi hexadecimal.

Podeu implementar una barra de progrés amb colors personalitzats com:

for i in tqdm(range(0, 100), colour="#00ffff", desc ="Progress: "): 
sleep(.1)

La sortida que obteniu en canviar el color de la barra de progrés:

  Barra de progrés amb color

5. Barra de progrés amb interval mínim

Podeu crear una barra de progrés que s'actualitzi amb un interval mínim en lloc de la configuració predeterminada. Podeu passar un número com 1,5 o 2 que servirà d'interval entre dues actualitzacions. El valor per defecte de l'interval mínim és 0,1.

Podeu implementar una barra de progrés amb un interval mínim com:

for i in tqdm(range(0, 100), mininterval = 2, desc ="Progress: "): 
sleep(.1)

La sortida que obteniu especificant un interval mínim a la barra de progrés:

  Barra de progrés amb interval mínim

6. Barra de progrés amb caràcters ASCII

Podeu crear una barra de progrés utilitzant caràcters ASCII en lloc de les barres habituals que veieu a la pantalla. Per utilitzar caràcters ASCII, configureu el ascii paràmetre al format desitjat.

Si utilitzeu alguna cosa com 12345* , cadascuna de les columnes de l'interval va d'una a un asterisc seqüencialment. Tot i que és fantàstic i personalitzable, assegureu-vos d'utilitzar-lo de manera fàcil d'utilitzar quan l'utilitzeu en aplicacions reals.

Podeu implementar una barra de progrés utilitzant caràcters ASCII com:

for i in tqdm(range(0, 100), ascii ="12345*"): 
sleep(.1)

La sortida que obteniu utilitzant caràcters ASCII a la barra de progrés té aquest aspecte:

  Barra de progrés amb caràcters ASCII

7. Barra de progrés mitjançant el punt d'inici especificat

En lloc d'iniciar una barra de progrés des de zero, podeu establir un punt de partida específic per a la barra de progrés. Passeu un valor inicial com 50 al inicial paràmetre.

Podeu implementar una barra de progrés mitjançant un punt d'inici específic com:

for i in tqdm(range(0, 100), initial = 50, desc ="Progress: "): 
sleep(.1)

La sortida que obteniu en iniciar la barra de progrés en un punt especificat:

el controlador ps4 no funciona a la PC
  Barra de progrés amb paràmetre inicial

8. Barra de progrés amb un nombre especificat d'iteracions

Podeu crear una barra de progrés que executi un nombre específic d'iteracions. Si voleu executar 500 iteracions de 50.000, passeu 500 com a interval i 50.000 com a nombre total d'iteracions al total paràmetre.

Podeu implementar una barra de progrés utilitzant un nombre específic d'iteracions com:

for i in tqdm(range(0, 500), total = 50000, desc ="Progress: "): 
sleep(.1)

La sortida que obteniu mitjançant una barra de progrés amb un nombre especificat d'iteracions:

  Barra de progrés amb nombre d'iteracions especificat

Aplicacions de la barra de progrés

Veureu barres de progrés en diverses situacions, com ara la reproducció d'un reproductor multimèdia o la mostra dels passos mitjançant un formulari en línia.

Tot i que una barra de progrés sembla estètica, fa una tasca important de proporcionar comentaris a l'usuari en absència dels quals abandonarien el lloc web.