Criar uma barra de progresso na CLI do Python

Criar uma barra de progresso na CLI do Python

Sempre que você baixa um arquivo ou inicia um jogo, você vê uma animação estética que se atualiza até ser concluída. Esta é uma barra de progresso. Uma barra de progresso é um elemento gráfico usado para visualizar o progresso de uma tarefa, como download, upload ou transferência de arquivos.





Existem dois tipos de barras de progresso: determinado e indeterminado. Barras de progresso determinadas acompanham o progresso de uma tarefa ao longo do tempo. Barras de progresso indeterminadas são executadas infinitamente com uma animação em loop.





MAKEUSEO VÍDEO DO DIA

Então, como você pode criar uma barra de progresso determinada em um programa Python CLI?





O que é o módulo tqdm?

tqdm é um módulo mantido principalmente por Casper da Costa-Luis junto com outros dez membros. tqdm deriva da palavra árabe taqaddum, que pode significar 'progresso', e é uma abreviação de 'eu te amo tanto' em espanhol (te quiero demasiado).

Usando o módulo tqdm, você pode criar uma barra de progresso atraente e funcional diretamente no seu terminal. Para instalar o módulo tqdm, abra seu terminal e execute:



pip install tqdm

Qual é o módulo de tempo?

O módulo utilitário padrão do Python inclui o módulo do tempo por padrão, então você não precisa instalá-lo. Você pode usar a função de suspensão fornecida no módulo de tempo para adicionar atraso aos seus aplicativos, o que ajudará a visualizar o progresso da barra.

Você pode usar o módulo de tempo para obter a data e hora, agendar tarefas e criar aplicativos úteis como um despertador simples , ou um cronômetro.





Como adicionar uma barra de progresso e personalizá-la

A barra de progresso padrão é fácil de usar e você pode personalizá-la com várias opções.

1. Barra de Progresso Simples

Você pode criar uma barra de progresso simples importando a classe tqdm do módulo tqdm e a função sleep do módulo time. Use um loop for e itere tqdm no intervalo desejado.





O intervalo pode ser qualquer coisa até 9e9 (nove bilhões). Passe o número de segundos para a função dormir para adicionar um atraso para que você possa visualizar e ver a barra de progresso em ação.

Você pode implementar uma barra de progresso simples como esta:

from tqdm import tqdm 
from time import sleep

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

Em vez de importar tqdm, você pode importar trange do módulo tqdm para combinar tqdm e range e passar o parâmetro diretamente.

from tqdm import trange 
from time import sleep

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

A saída que você obtém ao criar uma barra de progresso simples é assim:

  Barra de progresso simples

Essa saída inclui versões gráficas e textuais do progresso, juntamente com estatísticas de tempo.

2. Barra de progresso com texto de descrição

Você pode adicionar um rótulo descritivo à barra de progresso para explicar sua finalidade. Passe o texto que deseja exibir entre aspas duplas como o descrição parâmetro:

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

A saída que você obtém ao adicionar um texto de descrição junto com a barra de progresso se parece com isso:

  Barra de progresso com texto

3. Barra de progresso com largura personalizada

Por padrão, a largura da barra de progresso é definida como dinâmica para o tamanho da janela de saída. Você pode personalizá-lo de acordo com o seu gosto com a ajuda do notas parâmetro.

Você pode implementar uma barra de progresso com largura personalizada como:

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

A saída que você obtém ao alongar a largura da barra de progresso se parece com isso:

  Barra de progresso com descrição e ncols

4. Barra de progresso usando cores

Você pode personalizar a cor da barra de progresso usando o parâmetro de cor. Você pode fazer isso de duas maneiras:

  1. Nome da cor: Você pode usar o nome da cor, como verde, preto, ciano e muito mais.
  2. Código hexadecimal: O código hexadecimal é um formato em que o computador armazena a cor. Você pode denotar a cor hexadecimal com um hash (#) seguido por 6 caracteres em hexadecimal (0-9, a-f). O código hexadecimal #000000 representa preto enquanto #ffffff representa branco. Variando a intensidade desses números, você obtém diferentes tonalidades de cores. Você pode usar o Ferramenta Color Picker do Google para selecionar e colar a cor do código hexadecimal.

Você pode implementar uma barra de progresso com cores personalizadas como:

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

A saída que você obtém ao alterar a cor da barra de progresso:

como deletar eventos na agenda do iphone
  Barra de progresso com cor

5. Barra de progresso com intervalo mínimo

Você pode criar uma barra de progresso que atualiza com um intervalo mínimo em vez da configuração padrão. Você pode passar um número como 1,5 ou 2 que servirá como intervalo entre duas atualizações. O valor padrão do intervalo mínimo é 0,1.

Você pode implementar uma barra de progresso com um intervalo mínimo como:

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

A saída que você obtém especificando um intervalo mínimo para a barra de progresso:

  Barra de progresso com intervalo mínimo

6. Barra de progresso usando caracteres ASCII

Você pode criar uma barra de progresso usando caracteres ASCII em vez das barras usuais que você vê na tela. Para usar caracteres ASCII, defina o ascii parâmetro para o formato desejado.

Se você usar algo como 12345* , cada uma das colunas do intervalo itera de um a asterisco sequencialmente. Embora seja legal e personalizável, certifique-se de usar fácil de usar ao usá-lo em aplicativos reais.

Você pode implementar uma barra de progresso usando caracteres ASCII como:

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

A saída que você obtém usando caracteres ASCII na barra de progresso se parece com isso:

  Barra de progresso com caracteres ASCII

7. Barra de progresso usando o ponto inicial especificado

Em vez de iniciar uma barra de progresso do zero, você pode definir um ponto inicial específico para a barra de progresso. Passe um valor inicial como 50 para o inicial parâmetro.

Você pode implementar uma barra de progresso usando um ponto inicial específico como:

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

A saída que você obtém ao iniciar a barra de progresso em um ponto especificado:

  Barra de progresso com parâmetro inicial

8. Barra de progresso com um número especificado de iterações

Você pode criar uma barra de progresso que executa um número específico de iterações. Se você deseja executar 500 iterações de 50.000, passe 500 como o intervalo e 50.000 como o número total de iterações para o total parâmetro.

Você pode implementar uma barra de progresso usando um número específico de iterações como:

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

A saída que você obtém usando uma barra de progresso com um número especificado de iterações:

  Barra de progresso com número especificado de iterações

Aplicações da Barra de Progresso

Você verá barras de progresso em várias situações, como a reprodução de um media player ou mostrando as etapas por meio de um formulário online.

Embora uma barra de progresso pareça estética, ela faz um trabalho importante ao fornecer feedback ao usuário, caso ele saia do site.