Pular para o conteúdo principal

Automação em Python: Um guia completo

Aprenda sobre automação em Python, incluindo conceitos fundamentais, bibliotecas importantes, trabalho com dados, uso de aprimoramentos de IA e práticas recomendadas. Inclui exemplos do mundo real.
Atualizado 2 de jul. de 2025  · 13 min lido

Este artigo fornece um guia completo para você usar o Python para automação. Abordamos conceitos essenciais, bibliotecas importantes, casos de uso no mundo real e práticas recomendadas para ajudar os leitores a projetar e criar soluções de automação eficazes . Se você está em sua jornada de aprendizado de Python, não deixe de conferir nosso programa de habilidades Python Programming Fundamentals para acelerar seus estudos. 

O que é a automação Python? 

Python é uma linguagem de computador popular, e por um bom motivo. Sua sintaxe é limpa, fácil de aprender e simples de entender. Ele oferece amplo suporte de biblioteca para uma variedade de aplicativos. 

Existem ferramentas para sistemas de arquivos, como os, shutil e pathlib. Para o manuseio de dados, temos pandas e openpyxl. schedule, time e threading podem ajudar você a fazer o agendamento de tarefas.

Automatizar tarefas manuais tediosas é um caso de uso útil para o Python. Por que fazer esse relatório manualmente e enviar e-mails todos os meses? Escreva um script Python para fazer isso por você.

Fundamentos de automação em Python

O Python é uma opção atraente para automação. Sua simplicidade e o amplo suporte a bibliotecas o tornam acessível até mesmo para quem não é desenvolvedor.

Para que você possa atualizar os conceitos básicos do Python, confira estes recursos do DataCamp.

Benefícios

Ele oferece vários benefícios importantes para a automação. A baixa barreira à entrada permite que os usuários realizem tarefas complexas com apenas algumas linhas de código. O desenvolvimento rápido, a depuração simplificada e a escalabilidade o tornam adequado para fluxos de trabalho de automação avançados, incluindo integrações em nuvem, APIs e microsserviços.

Casos de uso comuns

Uma tarefa comumente automatizada é a manipulação de arquivos. Os scripts renomeiam, movem ou organizam arquivos com base em convenções de nomenclatura, tipos de arquivos ou registros de data e hora. A automação é frequentemente usada para baixar, limpar, processar e salvar dados da Web para uso posterior. 

Outra aplicação de rotina é gerar relatórios resumidos e distribuí-los por e-mail. Os scripts atualizam as planilhas inserindo novos dados, calculando fórmulas, aplicando formatação ou gerando gráficos e visualizações. Outro caso de uso comum é a interação com aplicativos da Web. Isso inclui a recuperação de dados, o envio de formulários e a integração de serviços.

Vamos dar uma olhada em um exemplo. O script abaixo usa os sites os e shutil para automatizar a organização de arquivos PDF, demonstrando um cenário claro e comum de gerenciamento de arquivos.

import os
import shutil

source_folder = 'Downloads'
destination_folder = 'Documents/PDFs'

# Move all PDF files from Downloads to PDFs folder
for filename in os.listdir(source_folder):
    if filename.endswith('.pdf'):
        shutil.move(
            os.path.join(source_folder, filename),
            os.path.join(destination_folder, filename)
        )

Conceitos básicos de automação em Python

Há vários fundamentos que você precisa conhecer quando se trata de automação Python: 

Idioma interpretado

Como o Python executa scripts? Python é uma linguagem interpretada. Isso significa que ele executa o código uma linha por vez durante o tempo de execução. Ele não compila todo o programa em código de máquina previamente. 

Esse recurso permite testes e desenvolvimento rápidos, portanto, não há necessidade de compilação. A desvantagem é que a execução pode ser mais lenta do que a das linguagens compiladas. 

Normalmente, os scripts têm uma extensão .py e são executados na linha de comando usando um comando como python my_script.py. Para obter mais informações sobre a execução de scripts Python, consulte nosso tutorial, How to Run Python Scripts (Como executar scripts Python).

Os scripts podem ser programados para serem executados automaticamente usando programadores do sistema, como Task Scheduler no Windows ou cron no Linux e macOS. As bibliotecas Python, como schedule ou APScheduler, permitem o controle programático.

Modelo de entrada-processo-saída

Os scripts de automação usam um modelo simples de entrada-processo-saída. Esse padrão é comum em fluxos de trabalho de programação. No estágio de entrada, o script coleta dados de várias fontes. Isso inclui arquivos locais, bancos de dados, APIs da Web e entradas do usuário. 

Durante o estágio de processamento, o script transforma, filtra e analisa os dados. No estágio de saída, o script fornece resultados por meio de vários métodos. Ele pode gravar em um arquivo, enviar um e-mail, publicar resultados em uma API ou salvá-los em um banco de dados. Esse fluxo torna os scripts de automação previsíveis e reutilizáveis. Também é fácil integrá-los a sistemas maiores.

Agendamento com Python

O Python fornece bibliotecas como schedule e APScheduler para automatizar o agendamento de tarefas:

Recurso

cronograma

APScheduler

Complexidade

Leve, em processo

Avançado, suporta persistência

Recursos de agendamento

Intervalos fixos

Expressões Cron, intervalos, tempo exato

Persistência

Não persistente (somente na memória)

Armazenamento persistente por meio de bancos de dados

Tipos de agendamento

Agendador único

Vários back-ends (AsyncIOScheduler, BackgroundScheduler)

Choose schedule para tarefas simples e recorrentes e o APScheduler para necessidades de agendamento avançadas e de nível de produção.

Vejamos um exemplo de agendamento de tarefas usando o site schedule para ilustrar o agendamento de tarefas, mostrando como um script executa repetidamente uma tarefa de relatório em intervalos regulares.

import schedule
import time

def job():
    print("Generating monthly report...")

# Schedule the job every month
schedule.every(30).days.at("08:00").do(job)

while True:
    schedule.run_pending()
    time.sleep(60)

Tratamento de erros

O Python inclui suporte integrado para tratamento de erros por meio dos blocos try/except. Esse mecanismo de erro permite que os scripts prevejam e gerenciem os erros sem travar. O script captura exceções específicas para registrar problemas para análise posterior. Ele também fornece mensagens de erro e se recupera de forma graciosa para continuar funcionando.

Bibliotecas Python essenciais para automação

Existem bibliotecas Python essenciais para automação de GUI, automação da Web e processamento de dados.

Automação da GUI com o pyautogui

A biblioteca pyautogui ajuda a automatizar as tarefas da GUI. Ele faz isso imitando ações humanas, como mover o mouse, clicar, digitar e localizar elementos da tela. Ele é mais adequado para tarefas de automação visual leves, em que a interface permanece consistente. Ele não é adequado para interfaces dinâmicas ou complexas porque depende apenas de pixels e não tem consciência contextual.

O PyAutoGUI oferece suporte a uma ampla gama de cenários de automação de desktop. Ele pode realizar tarefas repetitivas em seu computador. Ele simula cliques, pressionamentos de teclas e navegação em aplicativos como o Excel. Os desenvolvedores costumam usá-lo para validar a funcionalidade da interface do desktop, imitando o comportamento do usuário. Para jogos, ele pode automatizar ações simples no jogo por meio de macros. No entanto, os jogadores devem ter cuidado. Muitos jogos não permitem a automação e podem punir as contas que a utilizam.

Automação da Web: Selênio e dramaturgo

O Selenium é uma ferramenta amplamente utilizada para automatizar navegadores da Web, conhecida por sua maturidade, amplo suporte da comunidade e compatibilidade entre navegadores e idiomas. Ele se integra bem a estruturas de teste estabelecidas, como JUnit, TestNG e NUnit, o que o torna ideal para sistemas legados e ambientes corporativos complexos. No entanto, os scripts do Selenium geralmente exigem esperas explícitas e configuração adicional, o que leva a uma maior sobrecarga de manutenção, especialmente com aplicativos dinâmicos e com muito JavaScript.

O Playwright, por outro lado, é uma biblioteca de automação moderna que oferece espera automática, manipulação nativa de várias guias e APIs unificadas nos principais navegadores (incluindo o WebKit). Ele é excelente para testar estruturas de front-end dinâmicas, como React, Vue e Angular, o que o torna adequado para testes de ponta a ponta rápidos e confiáveis em pipelines de CI/CD.

Para obter mais informações sobre testes em Python, consulte este curso Introdução aos testes em Python. Para obter detalhes sobre testes de unidade, consulte o tutorial Testes de unidade em Python

Processamento de dados com pandas e openpyxl

As bibliotecas Python pandas e openpyxl são ferramentas poderosas para automação de planilhas.

pandas se destaca na manipulação de dados estruturados. Ele pode ler e gravar dados CSV, Excel ou SQL; limpar e transformar conjuntos de dados; agregar estatísticas; e mesclar conjuntos de dados. Os casos de uso comuns de automação incluem a criação de relatórios automatizados em Excel ou CSV, a limpeza de grandes conjuntos de dados e a preparação de dados para painéis ou arquivamento.

openpyxl lida especificamente com arquivos do Excel (.xlsx). Ele pode ler, gravar e formatar planilhas, executar formatação condicional, inserir fórmulas e adicionar gráficos. Os usos típicos incluem a automação da geração de relatórios e a atualização de modelos de planilhas.

Um fluxo de trabalho comum combina o pandas para análise de dados e o openpyxl para apresentação. Para grandes conjuntos de dados, o pandas é normalmente mais rápido. Além disso, observe que o openpyxl é compatível apenas com o Excel 2007+ (.xlsx) e não avalia fórmulas - o próprio Excel lida com isso ao abrir.

O exemplo abaixo demonstra o uso do pandas para automatizar uma tarefa de relatório de rotina. Ele lê dados de vendas de um arquivo CSV, remove duplicatas, preenche valores ausentes e exporta os dados limpos diretamente para uma planilha do Excel, pronta para distribuição ou análise posterior.

import pandas as pd

# Load data from a CSV file
df = pd.read_csv('monthly_sales.csv')

# Data cleaning: remove duplicates and handle missing values
df_cleaned = df.drop_duplicates().fillna(0)

# Save the cleaned dataset as an Excel report
df_cleaned.to_excel('cleaned_sales_report.xlsx', index=False)

Esse fluxo de trabalho pode ser facilmente agendado (por exemplo, usando o cron) e ampliado ainda mais. Por exemplo, a integração com a automação de e-mail para enviar relatórios mensais automaticamente.

Aplicativos práticos de automação em Python

O Python é amplamente usado para automatizar tarefas do mundo real, desde a raspagem da Web até a automação de e-mails e muito mais.

Raspagem da Web

Um aplicativo popular é a raspagem da Web. Quando o acesso oficial e estruturado está disponível, as APIs são provavelmente a melhor opção. Caso contrário, uma biblioteca como Beautiful Soup ou Scrapy pode ser usada para extrair dados diretamente do HTML.

O Beautiful Soup é ideal para extrair dados de sites com HTML simples e estável. É relativamente fácil de aprender e usar. No entanto, isso requer um entendimento detalhado da estrutura da página. Se o layout do site mudar, o código do raspador pode ser facilmente interrompido.

O Scrapy é bom para casos de uso mais complexos. Seu suporte à execução assíncrona o torna rápido e eficiente o suficiente para rastrear sites grandes com várias páginas. A saída pode ser exportada para JSON, CSV ou bancos de dados. 

Aqui está um exemplo simples que ilustra a extração de conteúdo estruturado de uma página da Web simples usando Beautiful Soup e requests:

import requests
from bs4 import BeautifulSoup

# Fetch the webpage
response = requests.get('https://example.com')
soup = BeautifulSoup(response.text, 'html.parser')

# Extract all headlines
headlines = soup.find_all('h2')

for headline in headlines:
    print(headline.text.strip())

Para obter mais informações sobre Python e raspagem da Web, confira estes recursos.

Automação de e-mail

O módulo integrado do Python smtplib permite que os scripts enviem e-mails de forma programática usando SMTP. É comumente usado para automatizar a comunicação em um fluxo de trabalho maior.

Os casos de uso típicos incluem o envio de relatórios programados, a entrega de alertas de erro ou de sistema de trabalhos automatizados, a notificação de administradores ou usuários sobre eventos ou atualizações e a anexação de arquivos de saída.

Aqui está um exemplo de script para enviar um e-mail com um arquivo anexado.

import smtplib
from email.message import EmailMessage

# Connect to email provider's SMTP server
# e.g., gmail uses smtp.gmail.com on port 587
server = smtplib.SMTP("smtp.gmail.com", 587)
server.starttls()
server.login("your_email@gmail.com", "your_app_password")

# Compose email
msg = EmailMessage()
msg["Subject"] = "Automation Alert"
msg["From"] = "your_email@gmail.com"
msg["To"] = "recipient@example.com"
msg.set_content("This is an automated message.")
# Attach files
with open("report.pdf", "rb") as f:
    msg.add_attachment(f.read(), maintype="application", subtype="pdf", filename="report.pdf")

# Send the email
server.send_message(msg)
server.quit()

Arquiteturas de automação avançadas

O Python oferece ferramentas poderosas para que você gerencie o agendamento e a coordenação de tarefas automatizadas. Bibliotecas como o APScheduler e plataformas como o Apache Airflow fornecem soluções flexíveis, robustas e dimensionáveis.

APScheduler

O Advanced Python Scheduler (APScheduler) é uma biblioteca pronta para produção que oferece opções avançadas de agendamento. É ideal para automatizar fluxos de trabalho recorrentes.

O APScheduler permite que as tarefas sejam executadas em datas específicas, em intervalos fixos ou em expressões no estilo cron (toda segunda-feira às 8h).

Ele oferece suporte ao armazenamento persistente de trabalhos por meio de bancos de dados, para que os dados persistam durante as reinicializações. Diferentes tipos de agendadores suportam diferentes casos de uso: BackgroundScheduler para tarefas sem bloqueio, AsyncIOScheduler para aplicativos assíncronos e BlockingScheduler para scripts de linha de comando. A execução do trabalho e os erros podem ser registrados para depuração ou monitoramento posterior.

Os casos de uso comuns incluem a geração de relatórios, o envio de e-mails programados, a execução de verificações de integridade, a realização de trabalhos de ETL e a manutenção do banco de dados.

Apache Airflow

O Apache Airflow é uma plataforma corporativa de código aberto que automatiza, agenda, gerencia e monitora fluxos de trabalho. É um sistema robusto, transparente e repetível que as organizações normalmente usam para orquestrar ETL, ML, engenharia de dados e geração de relatórios. 

Para usar o Apache Airflow, você deve escrever um fluxo de trabalho em Python para definir as tarefas e a ordem em que elas são executadas, além de definir a programação de quando o fluxo de trabalho deve começar. O Airflow executa cada tarefa no momento certo, monitora o fluxo de trabalho e envia alertas se algo der errado. Seu painel de controle na Web permite monitorar fluxos de trabalho e verificar registros.

Tendências emergentes na automação do Python

O Python desempenha um papel central no que há de mais moderno em automação. Tendências como a tomada de decisões orientada por IA e a computação em nuvem sem servidor ampliam os recursos de automação.

O machine learning (ML) permite que os sistemas de automação tomem decisões inteligentes e orientadas por dados. Essa integração resulta em maior flexibilidade e adaptabilidade do que a lógica tradicional baseada em regras.

O ML analisa dados históricos para prever eventos. Esses eventos acionam recursos de automação. Por exemplo, um sistema pode prever falhas no equipamento e programar a manutenção antes que surjam problemas. O ML também pode recomendar respostas. Por exemplo, um sistema de detecção de fraude pode sinalizar transações suspeitas de cartão de crédito com base no comportamento detectado nos dados, e não apenas nos limites. Os LLMs geram rascunhos de relatórios a partir dos dados. Isso reduz o esforço manual e acelera a criação de conteúdo.

Para saber mais sobre IA e automação, consulte o seguinte.

Automação nativa da nuvem

Com a computação sem servidor, os provedores de nuvem gerenciam a infraestrutura, permitindo que os desenvolvedores se concentrem na lógica e nos fluxos de trabalho de automação. 

O termo "sem servidor" refere-se ao fato de que os desenvolvedores não precisam gerenciar ou provisionar servidores; é claro que isso não significa que não existam servidores. Serviços como o AWS Lambda, o Google Cloud Functions e o Azure Functions permitem que os scripts Python sejam executados em resposta a eventos. 

Essa abordagem oferece vários benefícios. Ele elimina a responsabilidade do usuário por máquinas virtuais ou contêineres. As funções sem servidor são dimensionadas automaticamente de acordo com a demanda, implementando mais recursos durante períodos de alto tráfego, como eventos de varejo on-line. O modelo é econômico, pois os usuários pagam apenas pelo tempo de computação que utilizam.

Práticas recomendadas para automação confiável

Aqui estão algumas dicas importantes para quando você estiver automatizando processos em Python: 

Técnicas de tratamento de erros

O tratamento eficaz de erros permite que os scripts de automação se recuperem com elegância. Siga estas práticas recomendadas para gerenciar exceções.

  • Use blocos try/except específicos. Capture apenas as exceções que você espera, e não todos os erros em geral. Por exemplo, escreva um bloco específico para lidar com erros de divisão por zero em vez de um coletor de erros genérico.
  • Use finally. Um bloco finally garante a limpeza. As variáveis podem ser redefinidas, os recursos podem ser liberados.
  • Erros de registro. Os erros devem ser registrados para monitoramento futuro, não apenas impressos.
  • Comportamentos padrão. Para falhas não críticas, tenha padrões ou fallbacks sensatos.
  • Falha rápida e clara. Se a falha for irrecuperável, abra uma exceção ou saia antes com uma mensagem clara.

Gerenciamento de configuração

O uso de variáveis de ambiente é uma prática recomendada porque separa a configuração do código. Para aumentar a segurança, mantenha os dados confidenciais, como senhas, credenciais de banco de dados e chaves de API, fora do código-fonte, especialmente ao usar o controle de versão. 

As variáveis de ambiente permitem que ambientes diferentes, como desenvolvimento, preparação e produção, usem a mesma base de código com configurações diferentes. Essa abordagem simplifica a implantação em ambientes de nuvem e facilita a manutenção, pois as alterações de configuração não exigem alterações no próprio código.

Otimização do desempenho

A otimização dos scripts de automação garante que os programas sejam executados mais rapidamente, usem menos recursos e sejam dimensionados com mais eficiência. Isso é particularmente importante com grandes conjuntos de dados, processos sensíveis ao tempo ou tarefas executadas com frequência.

Algumas estratégias importantes para a otimização do desempenho:

  • Minimizar o trabalho redundantek. Evite recalcular valores ou consultar os mesmos dados várias vezes. Use a memoização ou armazene resultados intermediários quando for apropriado.
  • Use uma biblioteca eficientes. Escolha bibliotecas leves, criadas para fins específicos, que minimizem a sobrecarga. Por exemplo, use pandas em vez de loops manuais.
  • Use estruturas de dados eficientes. Da mesma forma, use estruturas de dados que minimizem a sobrecarga. Por exemplo, use set ou dict em vez de listas para fazer buscas mais rápidas.
  • Resultados do cache. Armazenar em cache os resultados de operações caras ou frequentes usando armazenamentos na memória ou caches externos.
  • Lote. Operações em lote, como gravações em arquivos e inserções no banco de dados, em lotes para reduzir a sobrecarga.
  • Execução paralela/concorrente. Use threading ou multiprocessamento para tarefas paralelas, como o processamento de arquivos ou a transformação de conjuntos de dados.
  • Perfil e código de referência. Use ferramentas como cProfile, line_profiler ou timeit para identificar gargalos e seções de código que precisam ser otimizadas.

Conclusão

Python é uma linguagem poderosa e versátil para automação. Seja automatizando tarefas simples como renomear arquivos ou criando fluxos de trabalho complexos com ferramentas como o Airflow, o Python fornece as ferramentas necessárias para uma automação confiável. Usando as dicas deste guia, os leitores podem automatizar tarefas repetitivas. Se você ainda estiver em sua jornada de aprendizado de Python, não deixe de conferir nosso programa de habilidades Python Programming Fundamentals para acelerar seu aprendizado.

Perguntas frequentes sobre automação com Python

Por que usar Python para automação?

A sintaxe simples do Python, o rico ecossistema de bibliotecas e a compatibilidade entre plataformas fazem dele uma opção atraente para desenvolvedores e não desenvolvedores.

Você pode automatizar tarefas do Excel com Python?

Sim. Use a biblioteca pandas para manipulação de dados e o "openpyxl" para criar, editar e estilizar arquivos do Excel de forma programática.

A raspagem da Web é legal?

A raspagem da Web é legal em muitos casos, especialmente quando os dados são públicos, mas sempre verifique os termos de serviço do site. Para dados estruturados, considere o uso de uma API, se disponível.

Como faço para armazenar as definições de configuração de forma segura?

Use variáveis de ambiente para gerenciar configurações, como chaves de API e credenciais de banco de dados, mantendo-as separadas do código-fonte.


Mark Pedigo's photo
Author
Mark Pedigo
LinkedIn

Mark Pedigo, PhD, é um ilustre cientista de dados com experiência em ciência de dados de saúde, programação e educação. Com doutorado em matemática, bacharelado em ciência da computação e certificado profissional em IA, Mark combina conhecimento técnico com solução prática de problemas. Sua carreira inclui funções em detecção de fraudes, previsão de mortalidade infantil e previsão financeira, além de contribuições para o software de estimativa de custos da NASA. Como educador, ele lecionou no DataCamp e na Washington University em St. Louis e foi mentor de programadores juniores. Em seu tempo livre, Mark curte o ar livre de Minnesota com sua esposa Mandy e seu cachorro Harley e toca piano jazz.

Tópicos

Principais cursos da DataCamp

Programa

Python Programming Toolbox

0 min
Build your knowledge of dates and times, regular expressions, and algorithms in Python!
Ver detalhesRight Arrow
Iniciar curso
Ver maisRight Arrow
Relacionado

blog

Como aprender Python do zero em 2024: um guia especializado

Descubra como aprender Python, suas aplicações e a demanda por competências em Python. Comece sua jornada em Python hoje mesmo ​com nosso guia detalhado.
Matt Crabtree's photo

Matt Crabtree

15 min

Tutorial

Desenvolvimento de back-end em Python: Um guia completo para iniciantes

Este guia completo ensina a você os fundamentos do desenvolvimento de back-end em Python. Aprenda conceitos básicos, estruturas e práticas recomendadas para você começar a criar aplicativos da Web.
Oluseye Jeremiah's photo

Oluseye Jeremiah

15 min

Tutorial

21 ferramentas essenciais do Python

Aprenda sobre as ferramentas Python essenciais para o desenvolvimento de software, raspagem e desenvolvimento da Web, análise e visualização de dados e aprendizado de máquina.
Abid Ali Awan's photo

Abid Ali Awan

6 min

Tutorial

Criando agentes LangChain para automatizar tarefas em Python

Um tutorial abrangente sobre a criação de agentes LangChain com várias ferramentas para automatizar tarefas em Python usando LLMs e modelos de bate-papo usando OpenAI.
Bex Tuychiev's photo

Bex Tuychiev

14 min

Tutorial

Programação orientada a objetos em Python (OOP): Tutorial

Aborde os fundamentos da programação orientada a objetos (OOP) em Python: explore classes, objetos, métodos de instância, atributos e muito mais!
Théo Vanderheyden's photo

Théo Vanderheyden

12 min

Tutorial

Tutorial do Python Excel: O guia definitivo

Saiba como ler e importar arquivos do Excel em Python, gravar dados nessas planilhas e encontrar os melhores pacotes para fazer isso.
Natassha Selvaraj's photo

Natassha Selvaraj

15 min

Ver maisVer mais