Barra de progresso com tqdm no Python

Atualizado em: 10/03/2026
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

    Bibliotecas e Módulos
    Foto do Leandro Hirt

    Como redimensionar imagens com Pillow em Python

    Redimensionar imagens é uma das tarefas mais comuns e fundamentais no processamento de dados visuais. Seja para otimizar o carregamento

    Ler mais

    Tempo de leitura: 10 minutos
    28/02/2026
    FundamentosBibliotecas e Módulos
    Foto do Leandro Hirt

    Descubra como gerar números aleatórios seguros com secrets

    Você já parou para pensar como o seu computador decide qual será o próximo número em um sorteio? No mundo

    Ler mais

    Tempo de leitura: 9 minutos
    27/02/2026
    Bibliotecas e Módulos
    Foto do Leandro Hirt

    Entendendo o módulo collections em Python

    O módulo collections é uma das ferramentas mais poderosas e subutilizadas da biblioteca padrão do Python. Embora os tipos de

    Ler mais

    Tempo de leitura: 10 minutos
    17/02/2026
    Bibliotecas e Módulos
    Foto do Leandro Hirt

    Como usar o módulo time em Python para iniciantes

    O tempo é um dos recursos mais preciosos em qualquer aplicação tecnológica. Seja para medir o desempenho de uma função,

    Ler mais

    Tempo de leitura: 11 minutos
    14/02/2026
    Bibliotecas e Módulos
    Foto do Leandro Hirt

    Operações matemáticas com o módulo math em Python

    O módulo math é uma das ferramentas mais poderosas e essenciais para quem está começando a aprender programação. Ao realizar

    Ler mais

    Tempo de leitura: 8 minutos
    13/02/2026
    Bibliotecas e Módulos
    Foto do Leandro Hirt

    Entendendo o módulo sys em Python e para que ele serve

    O universo da programação oferece ferramentas poderosas que muitas vezes passam despercebidas pelos iniciantes. Uma dessas ferramentas é o módulo

    Ler mais

    Tempo de leitura: 9 minutos
    11/02/2026