Script em Python para Organizar a Pasta de Downloads Automaticamente
Python: Como Criar um Organizador Automático de Pastas por Extensão
Manter a pasta de Downloads ou Documentos organizada manualmente exige tempo. Com os módulos nativos
os e shutil do Python, você pode criar um script simples que lê todos os arquivos de um diretório e os move automaticamente para subpastas categorizadas pela extensão do arquivo (.pdf, .jpg, .zip, etc.).Script Organizador de Arquivos
O script mapeia as extensões mais comuns para pastas temáticas e cria os diretórios automaticamente caso eles ainda não existam.
Python
import os
import shutil
def organizar_pasta(diretorio_alvo):
# Mapeamento de pastas e suas respectivas extensões
CATEGORIAS = {
"Documentos": [".pdf", ".docx", ".doc", ".txt", ".xlsx", ".pptx", ".csv"],
"Imagens": [".jpg", ".jpeg", ".png", ".gif", ".webp", ".svg"],
"Compactados": [".zip", ".rar", ".7z", ".tar", ".gz"],
"Executaveis_Instaladores": [".exe", ".msi", ".iso", ".deb"],
"Audios_Videos": [".mp3", ".wav", ".mp4", ".mkv", ".avi"]
}
# Garante que o caminho fornecido existe
if not os.path.exists(diretorio_alvo):
print(f"❌ O diretório '{diretorio_alvo}' não foi encontrado.")
return
# Percorre todos os itens da pasta alvo
for arquivo in os.listdir(diretorio_alvo):
caminho_completo = os.path.join(diretorio_alvo, arquivo)
# Ignora se for uma pasta
if os.path.isdir(caminho_completo):
continue
# Separa o nome da extensão do arquivo
_, extensao = os.path.splitext(arquivo)
extensao = extensao.lower()
# Procura a categoria correspondente para o arquivo
movido = False
for pasta_destino, extensoes_aceitas in CATEGORIAS.items():
if extensao in extensoes_aceitas:
caminho_pasta_destino = os.path.join(diretorio_alvo, pasta_destino)
# Cria a subpasta se não existir
os.makedirs(caminho_pasta_destino, exist_ok=True)
# Move o arquivo
shutil.move(caminho_completo, os.path.join(caminho_pasta_destino, arquivo))
print(f"📦 Mover: {arquivo} -> {pasta_destino}/")
movido = True
break
# Caso a extensão não esteja mapeada, move para a pasta 'Outros'
if not movido and extensao != "":
pasta_outros = os.path.join(diretorio_alvo, "Outros")
os.makedirs(pasta_outros, exist_ok=True)
shutil.move(caminho_completo, os.path.join(pasta_outros, arquivo))
print(f"📦 Mover: {arquivo} -> Outros/")
print("✅ Organização concluída com sucesso!")
# Exemplo de uso (altere para o caminho da sua pasta):
pasta_para_organizar = "C:/Users/SeuUsuario/Downloads"
organizar_pasta(pasta_para_organizar)
Pontos-Chave
os.path.splitext(arquivo): Divide com segurança o nome do arquivo da sua extensão (ex: extrai.pdfderelatorio.pdf).extensao.lower(): Padroniza as extensões em letras minúsculas para evitar erros com arquivos salvos em caixa alta (ex:.JPGvs.jpg).os.makedirs(..., exist_ok=True): Cria a subpasta de destino se ela não existir e previne exceções caso a pasta já tenha sido criada anteriormente.shutil.move(): Função responsável por transferir o arquivo de sua localização atual para o novo diretório configurado.os.path.isdir(): Garante que o script ignore subpastas já existentes dentro do diretório para evitar mover diretórios inteiros por engano.

Comentários
Postar um comentário