Quase todo mundo tem uma tarefa repetitiva no trabalho: renomear dezenas de arquivos, copiar dados de uma planilha para outra, gerar o mesmo relatório toda segunda-feira ou organizar a pasta de downloads. São atividades que consomem tempo, causam erros por distração e poderiam ser feitas por um computador em segundos. Python é uma das melhores linguagens para isso, por ser simples de ler e ter bibliotecas prontas para praticamente tudo. Neste artigo, vou mostrar exemplos práticos que você pode adaptar para a sua rotina.
Por que Python para automação?
- Sintaxe simples: o código é próximo da linguagem natural, o que facilita para quem não é programador profissional.
- Bibliotecas para tudo: planilhas, PDFs, e-mails, navegadores, APIs, imagens e muito mais.
- Multiplataforma: o mesmo script funciona no Windows, macOS e Linux.
- Comunidade enorme: praticamente qualquer dúvida já foi respondida em fóruns e documentações.
Preparando o ambiente
Baixe o Python no site oficial (python.org). No Windows, marque a opção "Add Python to PATH" durante a instalação. Para instalar bibliotecas, use o gerenciador de pacotes pip no terminal. Uma boa prática é criar um ambiente virtual para cada projeto:
python -m venv venv
# Windows
venv\Scripts\activate
# macOS / Linux
source venv/bin/activate
Exemplo 1: organizar a pasta de downloads
Este script move os arquivos da pasta de downloads para subpastas de acordo com o tipo:
from pathlib import Path
import shutil
pasta = Path.home() / "Downloads"
categorias = {
"Imagens": [".jpg", ".jpeg", ".png", ".gif", ".webp"],
"Documentos": [".pdf", ".docx", ".txt", ".xlsx", ".pptx"],
"Compactados": [".zip", ".rar", ".7z"],
"Instaladores": [".exe", ".msi"],
}
for arquivo in pasta.iterdir():
if not arquivo.is_file():
continue
for nome_pasta, extensoes in categorias.items():
if arquivo.suffix.lower() in extensoes:
destino = pasta / nome_pasta
destino.mkdir(exist_ok=True)
shutil.move(str(arquivo), destino / arquivo.name)
break
A biblioteca pathlib, que já vem com o Python, torna a manipulação de caminhos simples e funciona em qualquer sistema operacional.
Exemplo 2: renomear arquivos em lote
Imagine que você tem centenas de fotos com nomes como "IMG_4821.jpg" e quer renomeá-las para "viagem_001.jpg", "viagem_002.jpg" e assim por diante:
from pathlib import Path
pasta = Path("C:/Fotos/Viagem")
fotos = sorted(pasta.glob("*.jpg"))
for i, foto in enumerate(fotos, start=1):
novo_nome = f"viagem_{i:03d}{foto.suffix}"
foto.rename(pasta / novo_nome)
print(f"{foto.name} -> {novo_nome}")
Dica importante: antes de rodar scripts que alteram ou movem arquivos, teste em uma cópia da pasta. Uma alternativa é primeiro só imprimir o que seria feito e, depois de conferir, executar de verdade.
Exemplo 3: processar planilhas com pandas
A biblioteca pandas é a ferramenta mais popular para trabalhar com dados tabulares. Com ela, você lê planilhas, filtra, agrupa e gera novos arquivos com poucas linhas. Instale com:
pip install pandas openpyxl
Suponha uma planilha de vendas com as colunas Data, Vendedor, Produto e Valor. Para gerar um resumo do total vendido por vendedor:
import pandas as pd
vendas = pd.read_excel("vendas.xlsx")
resumo = (
vendas.groupby("Vendedor")["Valor"]
.agg(["count", "sum"])
.rename(columns={"count": "Qtd. Vendas", "sum": "Total"})
.sort_values("Total", ascending=False)
)
resumo.to_excel("resumo_vendedores.xlsx")
print(resumo)
Também é fácil juntar várias planilhas em uma só, algo muito comum quando cada filial ou mês tem seu próprio arquivo:
from pathlib import Path
import pandas as pd
arquivos = Path("relatorios").glob("*.xlsx")
consolidado = pd.concat([pd.read_excel(a) for a in arquivos], ignore_index=True)
consolidado.to_excel("consolidado.xlsx", index=False)
Exemplo 4: enviar e-mails automaticamente
O Python tem bibliotecas nativas para envio de e-mails. Este exemplo envia uma mensagem com anexo usando SMTP:
import os
import smtplib
from email.message import EmailMessage
msg = EmailMessage()
msg["Subject"] = "Relatório semanal"
msg["From"] = "[email protected]"
msg["To"] = "[email protected]"
msg.set_content("Olá! Segue em anexo o relatório da semana.")
with open("resumo_vendedores.xlsx", "rb") as f:
msg.add_attachment(f.read(), maintype="application",
subtype="octet-stream", filename="resumo.xlsx")
with smtplib.SMTP_SSL("smtp.gmail.com", 465) as smtp:
smtp.login("[email protected]", os.environ["EMAIL_PASS"])
smtp.send_message(msg)
Repare que a senha é lida de uma variável de ambiente, e não escrita no código. Nunca coloque senhas diretamente nos scripts, principalmente se eles forem compartilhados ou enviados para o GitHub. No Gmail, use uma "senha de app" em vez da sua senha principal.
Exemplo 5: consumir dados de uma API
Com a biblioteca requests, buscar dados na internet é simples. Por exemplo, consultar um endereço a partir do CEP usando a API pública ViaCEP:
import requests
cep = "01001000"
resposta = requests.get(f"https://viacep.com.br/ws/{cep}/json/", timeout=10)
resposta.raise_for_status()
dados = resposta.json()
print(dados["logradouro"], "-", dados["localidade"], "/", dados["uf"])
Combinando isso com o pandas, você poderia, por exemplo, completar automaticamente os endereços de uma planilha inteira de clientes.
Outras bibliotecas úteis
- openpyxl: manipular arquivos Excel com formatação, fórmulas e estilos.
- pypdf: juntar, dividir e extrair texto de PDFs.
- Pillow: redimensionar, converter e editar imagens em lote.
- Playwright e Selenium: automatizar ações em navegadores, como preencher formulários.
- schedule: agendar a execução de funções dentro do próprio script.
Agendando a execução
Uma automação de verdade roda sozinha. Para executar scripts em horários definidos:
- Windows: use o Agendador de Tarefas, configurando o programa
python.exee o caminho do script como argumento. - Linux e macOS: use o
cron. Por exemplo, para rodar toda segunda-feira às 8h:0 8 * * 1 /usr/bin/python3 /caminho/relatorio.py.
Boas práticas
- Comece pequeno: automatize uma tarefa simples e vá evoluindo.
- Registre o que o script faz com mensagens de log, para saber o que aconteceu caso algo dê errado.
- Trate erros: arquivos podem não existir e a internet pode cair. Use
try/exceptnos pontos críticos. - Faça backup antes de automações que alteram ou apagam arquivos.
- Respeite regras e termos de uso ao automatizar acesso a sites e sistemas.
Conclusão
Automatizar tarefas com Python é uma das formas mais rápidas de ver o valor da programação no dia a dia. Uma tarefa que leva 30 minutos por semana representa mais de 25 horas por ano. Escolha uma atividade repetitiva da sua rotina, divida em passos e transforme cada passo em código. Com o tempo, você vai começar a enxergar oportunidades de automação em todo lugar.