Thaís Lotti
Thaís Lotti14/10/2024 18:09
Compartilhe

Organizando Arquivos com Python: Criando um Organizador Automático

    Oi, pessoal! Hoje quero compartilhar com vocês um projeto que me ajudou bastante a organizar minhas pastas de trabalho: um Organizador de Arquivos Automático! 🗂

    Se você, assim como eu, tem uma pasta cheia de arquivos misturados (imagens, documentos, vídeos, etc.), este app é uma mão na roda. Ele automaticamente move seus arquivos para subpastas categorizadas pelas extensões (como .jpg, .pdf, .mp4) em poucos segundos.

    Por que eu criei este app?

    Eu trabalho com muitos arquivos de diferentes tipos, e organizá-los manualmente sempre foi uma tarefa chata. Então pensei: "Por que não criar um app que faça isso por mim?". Além de ser um projeto divertido, ele também me ajudou a praticar manipulação de arquivos e diretórios em Python.

    O que o app faz?

    O app escaneia uma pasta específica e organiza seus arquivos nas seguintes categorias:

    • Imagens: Arquivos com extensões como .jpg, .png, .gif, etc.
    • Documentos: Arquivos como .pdf, .docx, .xlsx, etc.
    • Vídeos: Arquivos de vídeo, como .mp4, .mkv, etc.
    • Outros: Arquivos que não se encaixam em nenhuma das categorias acima.

    Código do Organizador de Arquivos

    Aqui está o código completo que você pode copiar e testar:

    
    import os
    import shutil
    
    # Função que cria subpastas para categorias de arquivos
    def criar_subpastas(diretorio):
      categorias = ['Imagens', 'Documentos', 'Vídeos', 'Outros']
      for categoria in categorias:
          caminho = os.path.join(diretorio, categoria)
          if not os.path.exists(caminho):
              os.makedirs(caminho)
    
    # Função que move arquivos para as subpastas corretas
    def organizar_arquivos(diretorio):
      # Extensões de arquivos por categoria
      tipos_arquivos = {
          'Imagens': ['.jpg', '.jpeg', '.png', '.gif', '.bmp'],
          'Documentos': ['.pdf', '.docx', '.xlsx', '.txt', '.pptx'],
          'Vídeos': ['.mp4', '.mov', '.mkv', '.avi'],
      }
      
      criar_subpastas(diretorio)
    
      # Loop pelos arquivos no diretório
      for arquivo in os.listdir(diretorio):
          caminho_completo = os.path.join(diretorio, arquivo)
    
          # Verifica se é um arquivo (ignora pastas)
          if os.path.isfile(caminho_completo):
              # Move o arquivo para a subpasta correta com base na extensão
              movido = False
              for categoria, extensoes in tipos_arquivos.items():
                  if arquivo.endswith(tuple(extensoes)):
                      shutil.move(caminho_completo, os.path.join(diretorio, categoria, arquivo))
                      print(f'Movido {arquivo} para {categoria}')
                      movido = True
                      break
              
              # Se o arquivo não se encaixar em nenhuma categoria, move para "Outros"
              if not movido:
                  shutil.move(caminho_completo, os.path.join(diretorio, 'Outros', arquivo))
                  print(f'Movido {arquivo} para Outros')
    
    # Função principal
    def main():
      # Diretório a ser organizado (pode alterar para o caminho que você quiser)
      diretorio = input("Digite o caminho da pasta que deseja organizar: ")
      
      if os.path.exists(diretorio):
          organizar_arquivos(diretorio)
          print("Organização concluída!")
      else:
          print("Diretório não encontrado.")
    
    if __name__ == '__main__':
      main()
    

    Como funciona?

    O usuário insere o caminho da pasta que deseja organizar.

    O app cria subpastas dentro dessa pasta para Imagens, Documentos, Vídeos e Outros.

    Ele então percorre todos os arquivos da pasta, verifica suas extensões e os move para a subpasta correspondente. Arquivos que não se encaixam em nenhuma das categorias são movidos para a pasta "Outros".

    O que eu aprendi com esse projeto?

    Esse projeto foi uma excelente oportunidade para trabalhar com manipulação de arquivos e diretórios em Python. Além disso, também aprendi sobre a biblioteca shutil, que facilita muito a movimentação de arquivos entre pastas.

    Ideias para melhorias futuras

    Esse app já é bastante funcional, mas estou pensando em adicionar algumas funcionalidades extras, como:

    Interface gráfica: Para tornar a experiência de uso mais amigável.

    Personalização de categorias: Permitir que o usuário crie suas próprias categorias.

    Suporte para mais tipos de arquivos: Expandir a lista de extensões compatíveis.

    Se você tem uma pasta bagunçada e quer organizá-la automaticamente, recomendo muito testar esse código! É rápido, fácil e vai te poupar um tempão.

    Compartilhe
    Comentários (2)
    Kyska Harrington
    Kyska Harrington - 14/10/2024 18:29

    Gostei, parabens!!! Vou testar o codigo

    Rodrigo Coelli
    Rodrigo Coelli - 14/10/2024 18:21

    Muito boa ideia. Coloca no Github.