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