Blog

Postado em em 30 de setembro de 2021

Barra de Progresso no Python para Seus Códigos – Passo a Passo

Essa é uma aula especial onde eu vou te mostrar como construir uma barra de progresso no Python para seus códigos e automações!

Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo ou acesse o nosso canal do YouTube!

Para receber por e-mail o(s) arquivo(s) utilizados na aula, preencha:

Resumo

Nessa aula meu objetivo é te ensinar a criar uma barra de progresso no Python para que você consiga visualizar como está o progresso de um código que estiver rodando.

Assim você vai ter uma noção de quando ele vai acabar ou em qual parte ele ainda está!

Barra de Progresso para Códigos

Você sabia que é possível criar uma barra de progresso dos códigos em Python para verificar quando seu código vai estar perto de terminar?

Bem parecido com uma barra de carregamento de arquivos que vemos normalmente, só que para que você consiga verificar o progresso do seu código, assim sabe o tempo e em qual parte ele ainda está!

Hoje eu quero te mostrar como criar barras de progresso no Python para que você possa acompanhar seus códigos a medida em que está executando-os!

Como Criar Barra de Progresso no Python

Antes de começar a criar nossa barra de progresso nós vamos precisar instalar a biblioteca tqdm que vai auxiliar nesse processo.

Para isso basta escrever no terminal ou no prompt (depende de qual editor está utilizando) o seguinte comando: pip install tqdm.

Outra biblioteca que vamos utilizar para mostrar um exemplo é a biblioteca requests, o procedimento de instalação é o mesmo: pip install requests.

O primeiro exemplo que é o mais simples é o seguinte:

from tqdm import tqdm
import time

# forma mais simples
for i in tqdm(range(10)):
    time.sleep(1)

É esse código que é apenas uma estrutura de repetição For para repetir essa parte indo de 1 a 10 com um pequeno intervalo entre essas etapas.

Barra de progresso
Barra de progresso

Você vai notar que já vai ter a sua barra de progresso na parte inferior do programa (aqui estamos utilizando o PyCharm).

Então você vai conseguir visualizar o percentual, a quantidade de etapas e o tempo necessário para rodar esse código.

Dessa forma você vai conseguir saber em qual etapa o seu código está e qual o percentual que já foi concluído.

Pois como isso não é algo padrão dos códigos é muito interessante para o seu controle saber o progresso do código, se precisar parar a execução, se já está acabando…

Temos um segundo exemplo que é bem parecido, mas aqui podemos ajustar de forma manual.

with tqdm(total=100) as barra_progresso:
    for i in range(10):
        time.sleep(1)
        barra_progresso.update(10)

Aqui podemos atribuir um total, então ao invés de 10 (como no exemplo anterior) nós vamos ter 100 e o nosso update será de 10 em 10.

2 pontos importantes, esse update não necessariamente vai ser em percentual, pois se colocarmos 10 e o nosso total for 50, cada 10 vai corresponder a 20% ao invés de 10%.

Outro ponto é que temos um for que é repetido 10 vezes, aqui é muito importante tomar cuidado, pois se o nosso update for 1, por exemplo.

Quando terminarmos os 10 ele vai dar como concluído o código, mas nossa barra de progresso vai finalizar em 10%, porque atualizou 1 a cada vez que o for foi executado.

Agora vamos a um exemplo prático para facilitar o entendimento!

# quero entregar pra cidade do Rio de Janeiro

import requests


# passo 1: pegar a lista de ceps

with open("ceps.txt", "r") as arquivo:

    ceps = arquivo.read()

ceps = ceps.split("\n")

# passo 2: pegar as informações de cada cep

enderecos_entrega = []

for cep in tqdm(ceps):

    link = f'https://cep.awesomeapi.com.br/json/{cep}'

    # passo 3: verificar se a cidade é RIo de Janeiro

    requisicao = requests.get(link)

    resposta = requisicao.json()

    cidade = resposta['city']

    bairro = resposta['district']

    # passo 4: printar o cep e o bairro

    if cidade == "Rio de Janeiro":

        enderecos_entrega.append((cep, bairro))

print(enderecos_entrega)

Esse é um código relativamente simples, mas o que vamos fazer aqui é seguinte. Nós temos uma lista de CEPs (que também está disponível para download) e vamos fazer alguns passos!

  • No primeiro passo nós vamos abrir a lista de CEPs que está no formato txt.
  • No segundo passo nós vamos utilizar a biblioteca requests, para fazer a requisição das informações de cada um desses CEPs.
  • No terceiro passo nós vamos verificar se a cidade desse CEP que buscamos é do Rio de Janeiro (pois só queremos analisar o que for do RJ).
  • No quarto passo nós vamos registrar o CEP e o bairro da nossa lista, lembrando que só serão registrados os que são do RJ.
Progresso do exemplo prático
Progresso do exemplo prático

Aqui você vai conseguir ver na prática como a barra de progresso é bem útil tanto para verificar quantos CEPs nós temos e se o código está rodando normal ou se ele travou.

E claro, para você verificar o tempo de execução e o percentual em que está no momento.

Veja que logo no final nós vamos ter o print do que queríamos também!

Resultado dos CEPs que correspondem aos nossos critérios
Resultado dos CEPs que correspondem aos nossos critérios

Que são os CEPs e os bairros que correspondem ao Rio de Janeiro. Você pode até colocar um print do tamanho dessa variável que criamos para verificar que o total de CEPs é de apenas 28, pois dentro da nossa verificação só eles são do RJ.

Conclusão

Nessa aula eu te mostrei como visualizar o progresso dos códigos para que você possa ter um controle maior da execução do seu código.

Além disso te mostrei um exemplo prático de onde você pode utilizar uma barra de progresso em um caso real.

Agora você já sabe como pode utilizar a barra de progresso para te auxiliar na visualização do progresso dos seus códigos e nas suas automações!

Hashtag Treinamentos

Para acessar outras publicações de Python, clique aqui!


Quer aprender mais sobre Python com um minicurso básico gratuito?

Quer sair do zero no Python e virar uma referência na sua empresa? Inscreva-se agora mesmo no Python Impressionador