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:

Automatisierung der Skriptausführung

Um den Prozess der Dateiorganisation in Ihrem Ordner mit dem Python-Skript, das auf Martin Grellmanns Website beschrieben wird, weiter zu vereinfachen, können Sie die Ausführung des Skripts automatisieren. Dies bedeutet, dass das Skript in regelmäßigen Abständen ausgeführt wird, ohne dass Sie es manuell starten müssen. Für Unix-basierte Systeme wie Linux oder macOS können Sie Cronjobs verwenden, während Sie unter Windows den Task Scheduler einsetzen können.

Für Unix/Linux/macOS:

  1. Cronjob erstellen: Öffnen Sie das Terminal und geben Sie crontab -e ein, um den Cronjob-Editor zu öffnen.
  2. Skript planen: Fügen Sie eine Zeile hinzu, die angibt, wann und wie oft das Skript ausgeführt werden soll. Zum Beispiel: 0 * * * * /usr/bin/python3 /pfad/zu/Ihrem/skript.py
    Diese Zeile würde das Skript jede Stunde zur Minute 0 ausführen. Ändern Sie den Pfad /pfad/zu/Ihrem/skript.py entsprechend dem Speicherort Ihres Skripts.
  3. Cronjob speichern und beenden: Speichern Sie die Änderungen und schließen Sie den Editor. Der Cron-Dienst wird die neue Aufgabe automatisch übernehmen und das Skript entsprechend dem festgelegten Zeitplan ausführen.

Für Windows:

  1. Task Scheduler öffnen: Geben Sie in der Windows-Suchleiste Task Scheduler ein und öffnen Sie die Anwendung.
  2. Neue Aufgabe erstellen: Wählen Sie im rechten Fensterbereich Aufgabe erstellen aus.
  3. Aufgabeneinstellungen konfigurieren: Geben Sie Ihrer Aufgabe einen Namen und konfigurieren Sie die Trigger, die bestimmen, wann die Aufgabe ausgeführt werden soll. Sie können die Aufgabe so einstellen, dass sie täglich, wöchentlich, bei Anmeldung oder bei Systemstart ausgeführt wird.
  4. Aktion hinzufügen: Wechseln Sie zum Tab Aktionen und wählen Sie Neu. Unter Programm starten geben Sie den Pfad zur Python-Exe und als Argumente den Pfad zu Ihrem Skript an:
    • Programm/Skript: C:\Pfad\zu\python.exe
    • Argumente hinzufügen: C:\Pfad\zu\Ihrem\skript.py
  5. Einstellungen anpassen: Passen Sie bei Bedarf weitere Einstellungen im Tab Bedingungen und Einstellungen an.
  6. Aufgabe speichern: Speichern Sie die Aufgabe. Der Task Scheduler wird nun das Skript entsprechend Ihrem Zeitplan ausführen.