Organize seus Arquivos com Python: Diga Adeus à Bagunça Digital!

 

Se sua área de trabalho ou pasta de downloads é um caos, este projeto é para você! Aprenda a criar um script em Python que organiza automaticamente seus arquivos com base em sua extensão (ex: imagens em “Imagens”, documentos em “Documentos”).

O que você vai aprender:

  • Monitorar uma pasta em busca de novos arquivos
  • Identificar a extensão de cada arquivo
  • Criar pastas conforme as extensões
  • Mover arquivos para os locais corretos
  • Agendar a execução automática do script

Transforme a bagunça digital em ordem com a magia da automação!

Funcionalidades Extras:

  • Organização por data de criação
  • Renomeação automática de arquivos
  • Integração com Google Drive/Dropbox
  • Interface gráfica opcional

Ferramentas utilizadas:

  • Python 3.x – linguagem principal
  • os – manipulação de arquivos e pastas
  • shutil – movimentação de arquivos
  • time – controle de tempo
  • schedule (opcional) – agendamento automático
  • logging (opcional) – monitoramento e registro

Pré-requisitos:

  • Python instalado (python --version)
  • Conhecimento básico de Python
  • Editor de código (VS Code, PyCharm, etc.)
  • Pasta para organizar (ex: Downloads)
  • Terminal para execução

1. Instale a biblioteca schedule (opcional):

pip install schedule

2. Código Python:


import os
import shutil
import time
import schedule
import logging

logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')

PASTA_A_ORGANIZAR = "/Users/seu_usuario/Downloads"

EXTENSOES_E_PASTAS = {
    "pdf": "Documentos",
    "docx": "Documentos",
    "jpg": "Imagens",
    "jpeg": "Imagens",
    "png": "Imagens",
    "mp3": "Musicas",
    "mp4": "Videos",
    "zip": "Compactados",
    "exe": "Executaveis"
}

def organizar_arquivos():
    logging.info("Iniciando a organização dos arquivos...")
    for arquivo in os.listdir(PASTA_A_ORGANIZAR):
        caminho_completo = os.path.join(PASTA_A_ORGANIZAR, arquivo)
        if os.path.isdir(caminho_completo):
            continue
        try:
            nome, extensao = os.path.splitext(arquivo)
            extensao = extensao[1:].lower()
            if extensao in EXTENSOES_E_PASTAS:
                pasta_destino = os.path.join(PASTA_A_ORGANIZAR, EXTENSOES_E_PASTAS[extensao])
                if not os.path.exists(pasta_destino):
                    os.makedirs(pasta_destino)
                    logging.info(f"Pasta '{EXTENSOES_E_PASTAS[extensao]}' criada.")
                shutil.move(caminho_completo, os.path.join(pasta_destino, arquivo))
                logging.info(f"Arquivo '{arquivo}' movido para '{EXTENSOES_E_PASTAS[extensao]}'")
            else:
                logging.warning(f"Extensão '{extensao}' não mapeada.")
        except Exception as e:
            logging.error(f"Erro ao mover '{arquivo}': {e}")

organizar_arquivos()

3. Personalização:

  • Altere PASTA_A_ORGANIZAR com o caminho da sua pasta
  • Edite EXTENSOES_E_PASTAS conforme seus tipos de arquivos
  • Use logging.INFO, WARNING ou ERROR para ajustar os logs

4. Executando:

python organizar_arquivos.py

5. Agendamento (opcional):

Descomente a linha com schedule.every().day.at() para definir um horário fixo e use um agendador do sistema como o Task Scheduler (Windows) ou cron (Linux/macOS).

6. Lidando com arquivos duplicados:

Para evitar sobrescrições, você pode programar o script para renomear arquivos repetidos, como documento_1.pdf, documento_2.pdf, etc.

Dicas finais:

  • Faça um teste em uma pasta de cópia
  • Tenha cuidado com arquivos .exe e similares
  • Implemente try...except para tratar erros
  • Use logs para acompanhar o que está sendo feito
  • Faça backup antes da primeira execução

Pronto! Agora sua organização digital está nas mãos do Python 🚀

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *