Sempre que você baixa um arquivo ou inicia um jogo, vê uma animação estética que se atualiza até a conclusão. 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: determinadas e indeterminadas. 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.
Então, como você pode criar uma determinada barra de progresso em um programa Python CLI?
O que é o módulo tqdm?
tqdm é um módulo mantido principalmente por Casper da Costa-Luis junto com dez outros membros. tqdm deriva da palavra árabe taqaddum que pode significar "progresso" e é uma abreviação de "eu te amo tanto" em espanhol (te quiero também).
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 instalar tqdm
O que é o módulo de tempo?
O módulo utilitário padrão do Python inclui o módulo de 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 a 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 de suspensão 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:
de tqdm importar tqdm
de tempo importar dormir
para i em tqdm (intervalo (100)):
dormir(.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.
de tqdm importar estranho
de tempo importar dormir
para i no exterior (100):
dormir(.1)
A saída obtida ao criar uma barra de progresso simples é semelhante a esta:
Esta 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:
para i em tqdm (intervalo (0, 10), desc ="Progresso: "):
dormir(.4)
A saída que você obtém ao adicionar um texto de descrição junto com a barra de progresso se parece com esta:
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 seu gosto com a ajuda do ncols parâmetro.
Você pode implementar uma barra de progresso com largura personalizada como:
para i em tqdm (intervalo (0, 10), ncols = 100, desc ="Progresso: "):
dormir(.1)
A saída obtida ao alongar a largura da barra de progresso se parece com esta:
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:
- Nome da cor: Você pode usar o nome da cor, como verde, preto, ciano e muito mais.
- 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:
para i em tqdm (range (0, 100), color="#00ffff", desc ="Progresso: "):
dormir(.1)
A saída obtida ao alterar a cor da barra de progresso:
5. Barra de progresso com intervalo mínimo
Você pode criar uma barra de progresso que se 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:
para i em tqdm (intervalo (0, 100), miniintervalo = 2, desc ="Progresso: "):
dormir(.1)
A saída que você obtém especificando um intervalo mínimo para a barra de progresso:
6. Barra de progresso usando caracteres ASCII
Você pode criar uma barra de progresso usando caracteres ASCII em vez das barras comuns 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 usá-lo de forma amigável ao usá-lo em aplicativos reais.
Você pode implementar uma barra de progresso usando caracteres ASCII como:
para i em tqdm (intervalo (0, 100), ascii ="12345*"):
dormir(.1)
A saída obtida usando caracteres ASCII na barra de progresso é semelhante a esta:
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:
para i em tqdm (intervalo (0, 100), inicial = 50, desc ="Progresso: "):
dormir(.1)
A saída que você obtém ao iniciar a barra de progresso em um ponto especificado:
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ê quiser 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:
para i em tqdm (intervalo (0, 500), total = 50000, desc ="Progresso: "):
dormir(.1)
A saída que você obtém usando uma barra de progresso com um 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 reprodutor de mídia 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, na ausência do qual ele sairia do site.