Barra de progresso com tqdm no Python

Tempo de leitura: 5 minutos

Se você já ficou na dúvida se um script Python ainda está em execução, a Barra de progresso com tqdm no Python é a solução ideal para transformar aquela espera incerta em informação clara e visual.

Como instalar a barra de progresso com tqdm no Python

Antes de tudo, é preciso instalar Python e garantir que o gerenciador de pacotes pip esteja atualizado. A instalação da biblioteca tqdm é feita com um único comando:

pip install tqdm

Esse comando baixa a versão mais recente do repositório oficial PyPI. Caso você trabalhe em um ambiente virtual, a instalação ficará isolada do restante do sistema, evitando conflitos de dependências.

Uso básico da barra de progresso com tqdm no Python

O uso mais simples consiste em envolver qualquer for ou loop com a função tqdm(). Veja um exemplo clássico que simula uma tarefa demorada:

from tqdm import tqdm
import time
for i in tqdm(range(100)):
    time.sleep(0.05)

Ao executar, a barra exibe percentual concluído, velocidade de iteração e tempo estimado restante. Essa visualização ajuda a decidir se vale a pena aguardar ou interromper a execução.

Personalizando a barra de progresso

tqdm oferece diversas opções para adaptar a aparência e o comportamento da barra. As personalizações mais úteis são:

  • desc: adiciona uma descrição ao lado da barra, por exemplo desc="Processando arquivos".
  • ncols: define a largura da barra em caracteres, útil para terminais estreitos.
  • colour: altera a cor (disponível a partir da versão 4.62).
  • leave: controla se a barra permanece na tela após a conclusão.

Exemplo de barra personalizada:

for i in tqdm(range(200), desc=”Baixando”, ncols=80, colour=”green”, leave=False):
    time.sleep(0.02)

Atualização manual

Quando a iteração não é conhecida previamente, pode‑se criar um objeto tqdm com o parâmetro total e chamar update() manualmente:

progress = tqdm(total=5, desc=”Etapas”)
for etapa in [“A”, “B”, “C”, “D”, “E”]:
    time.sleep(0.3)
    progress.update(1)
progress.close()

Integração com pandas e outras bibliotecas

Para quem trabalha com análise de dados, a combinação pandas + tqdm é indispensável. Basta habilitar o modo progress_apply:

import pandas as pd
from tqdm import tqdm
tqdm.pandas()
df = pd.DataFrame({“valor”: range(1000)})
df[“resultado”] = df[“valor”].progress_apply(lambda x: x**2)

Essa abordagem mostra o progresso de cada operação apply, evitando surpresas ao processar grandes conjuntos de dados.

Barra de progresso em scripts de linha de comando

Quando seu programa aceita argumentos via argparse, a barra de progresso pode ser integrada ao fluxo de entrada e saída, proporcionando feedback ao usuário final. Um padrão comum é:

  1. Parsear argumentos.
  2. Inicializar tqdm com o total esperado.
  3. Atualizar a barra a cada passo crítico (download, processamento, gravação).

Essa prática melhora a experiência do usuário, especialmente em ferramentas de automação ou automatização de tarefas.

Melhores práticas e desempenho

Embora tqdm seja extremamente leve, algumas dicas ajudam a manter o overhead mínimo:

  • Evite atualizar a barra a cada iteração de loops muito curtos; use mininterval para limitar a frequência.
  • Desative a barra em ambientes não interativos (por exemplo, logs) usando disable=True.
  • Combine tqdm com módulos e pacotes bem estruturados para separar a lógica de cálculo da camada de visualização.

Estudos mostram que a sobrecarga de tqdm é da ordem de 60 nanosegundos por iteração, praticamente imperceptível mesmo em loops de milhões de repetições [zenodo.org].

Exemplos avançados

Barra de progresso em download de arquivos

Ao baixar arquivos com requests, é possível atualizar a barra conforme os bytes são recebidos:

import requests
from tqdm import tqdm
url = “https://example.com/arquivo.zip”
response = requests.get(url, stream=True)
total = int(response.headers.get(‘content-length’, 0))
with open(“arquivo.zip”, “wb”) as f, tqdm(total=total, unit=’B’, unit_scale=True, desc=”Download”) as bar:
    for data in response.iter_content(chunk_size=1024):
        size = f.write(data)
        bar.update(size)

Barra de progresso em processamento assíncrono

Para tarefas assíncronas com asyncio, a extensão tqdm.asyncio permite monitorar corrotinas sem bloquear o loop de eventos.

Recursos adicionais

Para aprofundar, consulte a documentação oficial da biblioteca tqdm no GitHub e a página da Wikipedia, que traz histórico e comparações com outras ferramentas de progresso.

Perguntas Frequentes

O que é tqdm?

tqdm é uma biblioteca Python que cria barras de progresso rápidas e configuráveis para loops e iteráveis.

Como instalar tqdm?

Execute pip install tqdm no terminal. Se usar um ambiente virtual, a instalação ficará isolada.

Posso usar tqdm em notebooks Jupyter?

Sim. Basta instalar ipywidgets e usar tqdm.notebook.tqdm para visualizações dentro do notebook.

Qual a diferença entre tqdm e tqdm_notebook?

tqdm_notebook foi renomeado para tqdm.notebook e oferece renderização otimizada para notebooks, enquanto a versão padrão funciona em terminais.

É possível mudar a cor da barra?

Sim, a partir da versão 4.62, use o parâmetro colour (ex.: colour="blue").

Como usar tqdm com pandas?

Ative tqdm.pandas() e substitua apply por progress_apply nos DataFrames.

Posso desativar a barra em produção?

Sim, passe disable=True ao criar a barra ou configure a variável de ambiente TQDM_DISABLE.

tqdm funciona em Windows?

Sim, a biblioteca é compatível com Windows, Linux, macOS e até sistemas BSD.

Qual o impacto de desempenho?

A sobrecarga típica é de cerca de 60 ns por iteração, insignificante para a maioria dos scripts.

Como atualizar a barra manualmente?

Crie um objeto tqdm(total=N) e chame update(k) sempre que avançar k passos.

Compartilhe:

Facebook
WhatsApp
Twitter
LinkedIn

Conteúdo do artigo

    Artigos relacionados

    Projetos
    Foto do Leandro Hirt

    Criando jogos com Pygame para iniciantes

    Aprender como começar a jornada de criando jogos com Pygame para iniciantes é um dos marcos mais empolgantes na vida

    Ler mais

    Tempo de leitura: 10 minutos
    10/02/2026
    Projetos
    Foto do Leandro Hirt

    Chatbot com OpenAI API usando Python

    A inteligência artificial transformou a maneira como interagimos com a tecnologia, e criar o seu próprio Chatbot com OpenAI API

    Ler mais

    Tempo de leitura: 10 minutos
    09/02/2026
    Projetos
    Foto do Leandro Hirt

    Criando um Quiz Interativo no Terminal com Python

    Se você quer Criando um Quiz Interativo no Terminal com Python de forma simples e divertida, este guia passo a

    Ler mais

    Tempo de leitura: 6 minutos
    07/02/2026
    Projetos
    Foto do Leandro Hirt

    Jogo da Forca em Python para iniciantes

    O Jogo da Forca em Python é uma ótima maneira de praticar lógica de programação, manipulação de strings e controle

    Ler mais

    Tempo de leitura: 6 minutos
    07/02/2026
    Logo do Discord e logo do Python lado a lado com um símbolo de mais entre eles
    Projetos
    Foto do Leandro Hirt

    Como Criar um Bot para Discord com Python

    Criar um bot para Discord usando Python é uma excelente forma de automatizar tarefas, gerenciar servidores e adicionar funcionalidades personalizadas

    Ler mais

    Tempo de leitura: 20 minutos
    10/12/2025
    Foto de um cadeado
    Projetos
    Foto do Leandro Hirt

    Como Criar um Gerador de Senhas no Python

    Aprenda a criar um gerador de senhas completo e seguro em Python. Tutorial passo a passo com código pronto, explicações

    Ler mais

    Tempo de leitura: 16 minutos
    09/12/2025