Mit Python die Inhalte eines Ordners kategorisieren

Mit Python kann man viele alltägliche Aufgaben automatisieren. Das Skript, was ich euch heute vorstellen möchte, durchläuft einen Ordner und strukturiert ihn nach Kategorien.

Das wird bei den meisten für den Download-Ordner eine sehr hilfreiche Automatisierungsanwendung sein 🙂

import os
import shutil

dir_path = os.path.dirname(os.path.realpath(__file__))

try:
    print("Intro zur Organisation Ihrer Dateien [ images - music - video -executable - archive - torrent - document - code - design files]")
    for filename in os.listdir(dir_path):
        # Prüft, ob es sich bei den Dateien um Bilder handelt und Sie weitere Erweiterungen hinzufügen können 
        if filename.lower().endswith((".png", ".jpg", ".jpeg", ".gif", ".bmp", ".pbm", ".pnm")):
            # Wenn der Ordner images nicht existiert, erstellen Sie einen neuen Ordner
            if not os.path.exists("images"):
                os.makedirs("images")
            shutil.copy2(filename, "images")
            os.remove(filename)

        # Prüt, ob es sich bei den Dateien um Musik handelt und Sie weitere Erweiterungen hinzufügen können
        if filename.lower().endswith((".wav", ".mp3", ".flac", ".3gp", ".aa", ".aax", ".aiff", ".raw")):
            # Bei Bedarf wird ein Musikordner erstellt
            if not os.path.exists("music"):
                os.makedirs("music")
            shutil.copy2(filename, "music")
            os.remove(filename)

        # Videoordner
        if filename.lower().endswith((".webm", ".mp4")):
           
            if not os.path.exists("video"):
                os.makedirs("video")
            shutil.copy2(filename, "video")
            os.remove(filename)

        # Sucht nach Ausführungsdateien
        if filename.lower().endswith((".exe", ".msi", ".deb" , "dmg")):
            # Erstellt ggf. den Ordner dazu
            if not os.path.exists("executables"):
                os.makedirs("executables")
            shutil.copy2(filename, "executables")
            os.remove(filename)

        # Archiv-Dateien
        if filename.lower().endswith((".rar", ".tar" , ".zip" , ".gz")):
            
            if not os.path.exists("archives"):
                os.makedirs("archives")
            shutil.copy2(filename, "archives")
            os.remove(filename)

        # Dokumente
        if filename.lower().endswith((".txt", ".pdf", ".docx" , "doc")):
            # If documents folder doesnt exist then create
            if not os.path.exists("documents"):
                os.makedirs("documents")
            shutil.copy2(filename, "documents")
            os.remove(filename)


        # Code
        if filename.lower().endswith((".py", ".php", ".html" , ".css" , ".js")):
            # If code folder doesnt exist then create
            if not os.path.exists("code"):
                os.makedirs("code")
            shutil.copy2(filename, "code")
            os.remove(filename)
#Kann hier noch beliebig erweitert werden :)

except OSError:
    print("Fehler ...... Probiere es nochmal")
finally:
    
    os.system("cls" if os.name == "nt" else "clear")
print("Fertig ")

So kann dann das Ergebnis aussehen: