Mac Foto export. Rename files or directories

As the Mac Foto export exports in directories like city, day, month year, I wanted it renamed. So I did a python script which reverses it. Now it is year-month-date town.

import os
import re
import unicodedata

# Zielverzeichnis
verzeichnis = "videos_von_iphone2"

# Monatsnamen auf Deutsch → Nummern
monate = {
    "Januar": "01", "Februar": "02", "März": "03", "April": "04",
    "Mai": "05", "Juni": "06", "Juli": "07", "August": "08",
    "September": "09", "Oktober": "10", "November": "11", "Dezember": "12"
}

print(f"📂 Starte Umbenennung im Verzeichnis: {verzeichnis}\n")

# Alle Einträge im Zielverzeichnis durchgehen
for eintrag in os.listdir(verzeichnis):
    alter_pfad = os.path.join(verzeichnis, eintrag)

    # Dateiname ohne Erweiterung (außer bei Ordnern)
    name, ext = os.path.splitext(eintrag)
    if os.path.isdir(alter_pfad):
        name = eintrag
        ext = ""

    print(f"🔍 Prüfe: {eintrag}")

    # Unicode-Leerzeichen etc. normalisieren
    name_norm = unicodedata.normalize("NFKC", name)

    # REGEX: Ort mit Komma + Datum (z. B. „Ort, 29. Mai 2025“)
    match_ort = re.match(r"(.+),\s*(\d{1,2})\.?\s+(\w+)\s+(\d{4})", name_norm)

    # REGEX: Nur Datum (z. B. „29. Mai 2025“)
    match_kein_ort = re.match(r"(\d{1,2})\.?\s+(\w+)\s+(\d{4})", name_norm)

    neuer_name = None

    if match_ort:
        ort = match_ort.group(1).strip()
        tag = int(match_ort.group(2))
        monat = match_ort.group(3)
        jahr = match_ort.group(4)

        if monat in monate:
            neuer_name = f"{jahr}-{monate[monat]}-{tag:02d} {ort}{ext}"
        else:
            print(f"⚠️  Unbekannter Monat: {monat}")

    elif match_kein_ort:
        tag = int(match_kein_ort.group(1))
        monat = match_kein_ort.group(2)
        jahr = match_kein_ort.group(3)

        if monat in monate:
            neuer_name = f"{jahr}-{monate[monat]}-{tag:02d}{ext}"
        else:
            print(f"⚠️  Unbekannter Monat: {monat}")
    else:
        print(f"⛔ Kein passendes Format erkannt.")

    # Umbenennen, falls möglich
    if neuer_name:
        neuer_pfad = os.path.join(verzeichnis, neuer_name)

        if alter_pfad == neuer_pfad:
            print("ℹ️  Name ist bereits korrekt.")
        else:
            os.rename(alter_pfad, neuer_pfad)
            print(f"✅ Umbenannt: {eintrag} → {neuer_name}")

    print("")  # Leerzeile zur Trennung