Blog

Postado em em 8 de agosto de 2023

Projetos de Automação em Python – 2 Projetos para Iniciantes

Quer aprender dois projetos de automação em Python para iniciantes que vão facilitar a sua vida e seu trabalho? Comece agora mesmo!

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:

Projetos de Automação em Python para Iniciantes

Nesta aula, vou te ensinar como construir dois projetos de automação em Python, te ajudando a dar seus primeiros passos com automações agora mesmo!

Apesar de serem projetos de automação em Python para iniciantes, você verá que eles são bastante úteis! Com eles, você conhecerá mais do potencial do Python e poderá agilizar tarefas do seu cotidiano e até mesmo do seu trabalho.

Os arquivos necessários para construir esses projetos de automação em Python estão disponíveis para Download, juntamente com os gabaritos de cada um deles.

Além desses arquivos vamos precisar também utilizar algum editor de códigos. Você pode usar o editor com qual está mais familiarizado ou pode aprender como instalar e configurar o mesmo editor que estarei utilizando ao longo desta aula, o VSCode.

Projeto 1 – Automação para Mesclar PDFs com Python

Neste projeto, vamos construir uma automação em Python para iniciantes capaz de mesclar PDFs. Você vai colocar seus arquivos em uma pasta, executar o código e ele mesclará todos eles em um único arquivo, salvando-o para você.

Vamos começar! Após baixar os arquivos para o seu computador, descompacte-os para dentro de uma mesma pasta.

Projetos de Automação em Python - Todos arquivos da aula em uma mesma pasta.

Dentro dessa pasta, crie um arquivo Python em branco para começarmos o nosso primeiro projeto de automação.

Para este projeto, vamos utilizar a biblioteca PyPDF2, que nos permite manipular os PDFs de forma eficiente. É essa biblioteca que será responsável por realizar o “merge”, a mesclagem, dos nossos arquivos.

Então, o primeiro passo será instalarmos essa biblioteca no nosso computador. Abra o terminal do seu editor de códigos e execute o comando pip install pypdf2.

Instalação da biblioteca PyPDF2.

Com a biblioteca instalada, podemos importá-la para dentro do nosso código, juntamente com a biblioteca os, que já vem instalada por padrão com o Python.

A biblioteca os será responsável por ler e manipular as pastas e arquivos do nosso computador.

Obs.: Atente-se para as letras maiúsculas e minúsculas ao fazer o import.

import PyPDF2
import os

Feito isso, podemos criar efetivamente o nosso objeto que será utilizado para realizar as operações de mesclagem dos nossos arquivos PDF. Vamos chamá-lo de merger, que é o termo correspondente em inglês.

Esse objeto irá receber, a partir da nossa biblioteca PyPDF2, a classe PdfMerger, que nos fornecerá a funcionalidade de unir os nossos PDFs.

merger = PyPDF2.PdfMerger()

Para utilizar nosso merger nos nossos arquivos, precisamos listar esses arquivos dentro do código. Para isso, vamos utilizar a função listdir() da biblioteca os para criar a nossa lista.

Como a função listdir() retorna uma lista de arquivos no diretório onde o código Python está localizado, precisamos passar o nome da pasta de onde queremos pegar os arquivos como parâmetro No caso, nossa pasta “arquivos”

Para verificar se os arquivos estão sendo listados corretamente, podemos adicionar um print na linha seguinte e executarmos para ver o resultado.

lista_arquivos = os.listdir("arquivos")
print(lista_arquivos)
Exibição dos arquivos printados

No nosso caso, os arquivos já estão listados na ordem que gostaríamos de mesclar. No entanto, caso eles estivessem desordenados, poderíamos utilizar o método sort() para ordenar nossos arquivos.

lista_arquivos = os.listdir("arquivos")
lista_arquivos.sort()
print(lista_arquivos)

Com nosso objeto merger pronto e nossa lista de arquivos, podemos mesclar nossos arquivos em um único arquivo.

Para fazer isso, vamos percorrer nossa lista de arquivos utilizando a estrutura de repetição FOR. Verificarmos se cada arquivo tem a extensão “.pdf” em seu nome e, caso tenha, adicioná-lo ao nosso merger.

for arquivo in lista_arquivos:
    if ".pdf" in arquivo:
        merger.append(f"arquivos/{arquivo}")

Para adicionar os nossos arquivos ao merger,vamos fazer uso do método append(). Para esse método precisamos passar como parâmetro o arquivo que queremos adicionar. Como nossos arquivos estão dentro de uma pasta chamada “arquivos”, precisamos informar o caminho completo.

Dado que a variável arquivo corresponde ao nome dos nossos arquivos e ela muda a cada iteração do for, podemos utilizar de uma f-string para passar essa variável dentro do caminho que definimos no append().

Para finalizar, só precisamos pedir para nosso merger salvar o nosso arquivo final. Faremos isso através do método write(), que criará um PDF final. Basta passarmos para esse método o nome que queremos para o nosso arquivo final.

import PyPDF2
import os

merger = PyPDF2.PdfMerger()

lista_arquivos = os.listdir("arquivos")
lista_arquivos.sort()
print(lista_arquivos)

for arquivo in lista_arquivos:
    if ".pdf" in arquivo:
        merger.append(f"arquivos/{arquivo}")

merger.write("PDF Final.pdf")

Se executarmos nosso código agora, ele irá gerar e salvar na mesma pasta do nosso código um PDF chamado “PDF Final.pdf”.

arquivo "PDF Final.pdf" criado

O nosso primeiro projeto de automação em Python para iniciantes está pronto! Agora, sempre que você quiser mesclar arquivos PDFs basta colocá-los na sua pasta “arquivos” e executar esse código que acabamos de construir.

Projeto 2 – Organizador de Arquivos com Python

Se você curtiu nosso primeiro projeto, então prepara-se para o segundo! Com este projeto de automação em Python, vou te mostrar como construir um organizador de arquivos para o nosso computador.

Esse organizador irá separar os arquivos de uma pasta do seu computador de acordo com a extensão deles e salvá-los em pastas específicas para cada tipo. E o melhor, você poderá selecionar qual pasta quer organizar através de uma janela pop-up super intuitiva.

Para este projeto, utilizarei a minha pasta “Executar” como exemplo, mas você pode utilizar a pasta que preferir em seu computador.

Para executarmos este projeto, não precisaremos instalar nenhuma biblioteca nova. Vamos fazer uso apenas da biblioteca os e da biblioteca Tkinter, ambas padrões do Python. Portanto, vamos importá-las.

import os
from tkinter.filedialog import askdirectory

Note que da biblioteca Tkinter,só precisaremos da função askdirectory(). É essa função que utilizaremos para exibir a janela pop-up na qual iremos selecionar a pasta que desejamos organizar. O caminho do diretório dessa pasta será armazenado na variável caminho.

caminho = askdirectory(title="Selecione uma pasta")

Para determinar o texto que aparecerá na nossa janela, passamos o parâmetro title.

Janela pop-up Tkinter

Assim como fizemos no primeiro projeto, precisamos percorrer os arquivos que estão dentro da pasta que queremos organizar. Então, vamos criar uma lista de arquivos utilizando o listdir(), passando como parâmetro a variável caminho que criamos.

lista_arquivos = os.listdir(caminho)

Além disso, vamos criar um dicionário Python para estabelecer a lógica que utilizaremos para separar nossos arquivos e direcioná-los para as pastas correspondentes.

As chaves do nosso dicionário vão ser os nomes das pastas em que iremos salvar nossos arquivos, e os valores serão listas com os tipos de extensão que serão associados a cada pasta.

locais = {
    "imagens": [".png", ".jpg"],
    "planilhas": [".xlsx"],
    "pdfs": [".pdf"],
    "csv": [".csv"],
}

Você pode criar quantos itens forem necessários dentro do seu dicionário, de acordo com as pastas e tipos de extensões que desejar. Para o nosso exemplo, teremos planilhas, arquivos CSV, PDFs e imagens nos formatos PNG e JPG.

Nossa pasta exemplo, com planilhas, arquivos CSV, PDFs e imagens nos formatos PNG e JPG.

Para separarmos nossos arquivos, precisaremos percorrer cada um deles e verificar a sua extensão. Novamente, utilizaremos a estrutura de repetição for.

Para extrair o nome do arquivo e a sua extensão a partir do caminho completo do arquivo, utilizaremos a função splitext() do módulo path da biblioteca os.

Passaremos o caminho completo do arquivo como parâmetro, utilizando uma f-string, que será formado pela variável caminho, definida pela janela pop-up, mais a variável arquivo, que recebe o nome dos nossos arquivos a cada iteração do for.

Essa função retornará uma tupla contendo duas strings: o caminho completo do arquivo até o nome, que atribuiremos à variável nome, e a extensão, que atribuiremos à variável extensao.

for arquivo in lista_arquivos:
    nome, extensao = os.path.splitext(f"{caminho}/{arquivo}")

Agora que já conseguimos pegar a extensão dos nossos arquivos, vamos adicionar um novo for dentro do que já temos.

Esse segundo for irá percorrer cada uma das chaves, vamos chamar de pasta, do nosso dicionário locais e verificar se a extensao está presente nos valores correspondentes, ou seja, se faz parte dos tipos de extensões que queremos separar e organizar.

for arquivo in lista_arquivos:
    nome, extensao = os.path.splitext(f"{caminho}/{arquivo}")
    for pasta in locais:
        if extensao in locais[pasta]:

Se a variável extensao estiver presente no dicionário, faremos uma segunda verificação para saber se a pasta correspondente para aquele arquivo já está criada.

Para isso, vamos criar um segundo IF que através da função os.path.exists() irá verificar se existe uma pasta com o nome correspondente à chave pasta  do nosso dicionário, dentro do nosso caminho.

Se essa pasta não existir vamos criá-la através do método mkdir, passando como parâmetros o nosso caminho mais a nossa pasta.

for arquivo in lista_arquivos:
    nome, extensao = os.path.splitext(f"{caminho}/{arquivo}")
    for pasta in locais:
        if extensao in locais[pasta]:
            if not os.path.exists(f"{caminho}/{pasta}"):
                os.mkdir(f"{caminho}/{pasta}")

Com a verificação e a criação das nossas pastas concluídas, agora só precisamos mover nossos arquivos.

Fora desse segundo if, utilizaremos o método rename(), passando o antigo caminho completo do nosso arquivo e o novo caminho onde queremos que ele seja salvo.

Como faremos uso de variáveis para determinar esses caminhos, utilizaremos novamente a f-string para realizar essa operação de forma dinâmica.

import os
from tkinter.filedialog import askdirectory

caminho = askdirectory(title="Selecione uma pasta")

lista_arquivos = os.listdir(caminho)

locais = {
    "imagens": [".png", ".jpg"],
    "planilhas": [".xlsx"],
    "pdfs": [".pdf"],
    "csv": [".csv"],
}

for arquivo in lista_arquivos:
    nome, extensao = os.path.splitext(f"{caminho}/{arquivo}")
    for pasta in locais:
        if extensao in locais[pasta]:
            if not os.path.exists(f"{caminho}/{pasta}"):
                os.mkdir(f"{caminho}/{pasta}")
            os.rename(f"{caminho}/{arquivo}", f"{caminho}/{pasta}/{arquivo}")

Podemos executar nosso código agora, e ele irá organizar a pasta que escolhermos. Vamos conferir como ficou a minha pasta “Executar”.

Resultado final com as pastas organizadas

Conclusão – Projetos de Automação em Python para Iniciantes

Nessa aula te mostrei como criar dois projetos de automação em Python para iniciantes!

No primeiro projeto, criamos uma ferramenta para mesclar PDFs com Python. Agora, você não precisará mais depender de sites que façam isso para você. Poderá executar tudo sozinho com apenas um clique!

No nosso segundo projeto de automação em Python, aprendemos a separar e organizar arquivos de acordo com as suas extensões. De forma prática e bem intuitiva para o usuário.

Esses dois projetos de automação em Python são apenas o começo para os seus estudos em Python! Mas com eles você já conseguirá agilizar tarefas no seu dia a dia e até mesmo no seu trabalho.

O Python nos oferece diversas possibilidades para nos destacarmos. Basta estudar e praticar!

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