Ogni volta che scarichi un file o avvii un gioco, vedi un'animazione estetica che si aggiorna fino al completamento. Questa è una barra di avanzamento. Una barra di avanzamento è un elemento grafico utilizzato per visualizzare lo stato di avanzamento di un'attività come il download, il caricamento o il trasferimento di file.

Esistono due tipi di barre di avanzamento: determinate e indeterminate. Determinate barre di avanzamento tengono traccia dell'avanzamento di un'attività nel tempo. Le barre di avanzamento indeterminate vengono eseguite all'infinito con un'animazione in loop.

Quindi, come puoi creare una determinata barra di avanzamento in un programma Python CLI?

Cos'è il modulo tqdm?

tqdm è un modulo gestito principalmente da Casper da Costa-Luis insieme ad altri dieci membri. tqdm deriva dalla parola araba taqaddum che può significare "progresso" ed è un'abbreviazione di "ti amo così tanto" in spagnolo (te quiero demasiado).

Usando il modulo tqdm puoi creare una barra di avanzamento attraente e funzionale direttamente nel tuo terminale. Per installare il modulo tqdm, apri il tuo terminale ed esegui:

instagram viewer

pippo installare tqdm

Cos'è il modulo orario?

Il modulo di utilità standard di Python include il modulo del tempo per impostazione predefinita, quindi non è necessario installarlo. Puoi utilizzare la funzione di sospensione fornita nel modulo orario per aggiungere un ritardo alle tue applicazioni che ti aiuteranno a visualizzare l'avanzamento della barra.

È possibile utilizzare il modulo orario per ottenere la data e l'ora, pianificare attività e creare applicazioni utili come a semplice sveglia, o un cronometro.

Come aggiungere una barra di avanzamento e personalizzarla

La barra di avanzamento predefinita è facile da usare e puoi personalizzarla con diverse opzioni.

1. Barra di avanzamento semplice

È possibile creare una semplice barra di avanzamento importando la classe tqdm dal modulo tqdm e la funzione sleep dal modulo time. Usa un ciclo for e itera tqdm sull'intervallo desiderato.

La gamma può essere qualsiasi cosa fino a 9e9 (nove miliardi). Passa il numero di secondi alla funzione sleep per aggiungere un ritardo in modo da poter visualizzare e vedere la barra di avanzamento in azione.

Puoi implementare una semplice barra di avanzamento come questa:

da tqdm importare tqdm
da tempo importare sonno

per i in tqdm (intervallo (100)):
sonno(.1)

Invece di importare tqdm, puoi importare trange dal modulo tqdm per combinare tqdm e range e passare direttamente il parametro.

da tqdm importare trange
da tempo importare sonno

per i in trange (100):
sonno(.1)

L'output che si ottiene creando una semplice barra di avanzamento è simile al seguente:

Questo output include versioni grafiche e testuali dello stato di avanzamento, insieme a statistiche temporali.

2. Barra di avanzamento con testo descrittivo

Puoi aggiungere un'etichetta descrittiva alla barra di avanzamento per spiegarne lo scopo. Passare il testo che si desidera visualizzare racchiuso tra virgolette come the desc parametro:

per i in tqdm (intervallo (0, 10), desc ="Progresso: "):
sonno(.4)

L'output che si ottiene aggiungendo un testo descrittivo insieme alla barra di avanzamento è simile al seguente:

3. Barra di avanzamento con larghezza personalizzata

Per impostazione predefinita, la larghezza della barra di avanzamento è impostata dinamicamente sulla dimensione della finestra di output. Puoi personalizzarlo a tuo piacimento con l'aiuto del ncols parametro.

Puoi implementare una barra di avanzamento con larghezza personalizzata come:

for i in tqdm (intervallo (0, 10), ncols = 100, desc ="Progresso: "):
sonno(.1)

L'output che si ottiene allungando la larghezza della barra di avanzamento è simile al seguente:

4. Barra di avanzamento utilizzando il colore

Puoi personalizzare il colore della barra di avanzamento utilizzando il parametro color. Puoi farlo in due modi:

  1. Nome del colore: Puoi usare il nome del colore come verde, nero, ciano e altro.
  2. Codice esadecimale:Il codice esadecimale è un formato in cui il computer memorizza il colore. Puoi indicare il colore esadecimale con un cancelletto (#) seguito da 6 caratteri esadecimali (0-9, a-f). Il codice esadecimale #000000 rappresenta il nero mentre #ffffff rappresenta il bianco. Variando l'intensità di questi numeri si ottengono diverse sfumature di colore. Puoi usare il Strumento di selezione colore di Google per selezionare e incollare il colore del codice esadecimale.

Puoi implementare una barra di avanzamento con colori personalizzati come:

for i in tqdm (intervallo (0, 100), colore="#00ffff", discesa ="Progresso: "):
sonno(.1)

L'output che si ottiene cambiando il colore della barra di avanzamento:

5. Barra di avanzamento con intervallo minimo

È possibile creare una barra di avanzamento che si aggiorni con un intervallo minimo invece dell'impostazione predefinita. Puoi passare un numero come 1,5 o 2 che servirà come intervallo tra due aggiornamenti. Il valore predefinito dell'intervallo minimo è 0,1.

Puoi implementare una barra di avanzamento con un intervallo minimo come:

for i in tqdm (intervallo (0, 100), mininterval = 2, desc ="Progresso: "):
sonno(.1)

L'output si ottiene specificando un intervallo minimo per la barra di avanzamento:

6. Barra di avanzamento con caratteri ASCII

Puoi creare una barra di avanzamento utilizzando caratteri ASCII invece delle solite barre che vedi sullo schermo. Per utilizzare i caratteri ASCII impostare il file asci parametro nel formato desiderato.

Se usi qualcosa come 12345*, ciascuna delle colonne dell'intervallo esegue l'iterazione da uno all'asterisco in sequenza. Sebbene sia interessante e personalizzabile, assicurati di utilizzare user-friendly quando lo usi in applicazioni reali.

Puoi implementare una barra di avanzamento utilizzando caratteri ASCII come:

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

L'output ottenuto utilizzando i caratteri ASCII nella barra di avanzamento è simile al seguente:

7. Barra di avanzamento utilizzando il punto iniziale specificato

Invece di iniziare una barra di avanzamento da zero, puoi impostare un punto di partenza specifico per la barra di avanzamento. Passa un valore iniziale come 50 al iniziale parametro.

Puoi implementare una barra di avanzamento utilizzando un punto di partenza specifico come:

per i in tqdm (intervallo (0, 100), iniziale = 50, desc ="Progresso: "):
sonno(.1)

L'output che si ottiene avviando la barra di avanzamento in un punto specificato:

8. Barra di avanzamento con un numero specificato di iterazioni

È possibile creare una barra di avanzamento che esegue un numero specifico di iterazioni. Se vuoi eseguire 500 iterazioni su 50000, passa 500 come intervallo e 50000 come numero totale di iterazioni al totale parametro.

Puoi implementare una barra di avanzamento utilizzando un numero specifico di iterazioni come:

for i in tqdm (intervallo (0, 500), totale = 50000, desc ="Progresso: "):
sonno(.1)

L'output ottenuto utilizzando una barra di avanzamento con un numero specificato di iterazioni:

Applicazioni della barra di avanzamento

Vedrai barre di avanzamento in varie situazioni, come la riproduzione di un lettore multimediale o mostrando i passaggi attraverso un modulo online.

Sebbene una barra di avanzamento abbia un aspetto estetico, svolge un lavoro importante nel fornire feedback all'utente in assenza del quale lascerebbe il sito Web.