Chaos im Fotoordner? So habe ich mein Problem mit Pyhon gelöst

Kennt ihr das Problem: Hunderte Urlaubsfotos von verschiedenen Smartphones, alle mit chaotischen Dateinamen?

IMG_23763.jpg, DSC_00056.jpeg, IMG_E0012.jpg

Eine Katastrophe für die Übersicht. Genau das war meine Situation. Als Python-Anfänger dachte ich: Das muss sich doch automatisieren lassen! Und so entstand meine Idee für ein Skript, das Fotos nach ihrem Aufnahmedatum benennt. Also hab ich mich ran gemacht, dieses Skript zu schreiben, um mein Problem zu lösen und meine Python Skills zu erweitern.

Die erste Idee: Schnell aber mit Haken!

Meine erste Lösung war einfach: Ich wollte das Erstelungsdatum der Datei nutzen und die Bilder entsprechen umbenennen, z.B. 2025-05-30_14-35-12.jpg.

Also schrieb ich ein kurzes Python-Skript:

  1. Bilddateien in dem aktuellen Ordner durchlaufen
  2. deren Erstelldatum mit path.getctime(current_file_path) auslesen
  3. Das Datum formatieren und die alten Dateinamen mit den Neuen austauschen.
  4. Das Skript brauchte ich dann nur in den Ordner mit meinen Bildern ziehen und ausführen.

Ich war begeistert von meiner schnellen Lösung.

Das Problem: Download-Dilemma

Als ich es zum ersten mal ausprobierte, zeigte sich schnell ein Problem. Bei den vielen heruntergeladenen Fotos war das „Erstellungsdatum“ das Download-Datum und nicht das Aufnahmedatum. Nach kurzer Recherche fand ich den Grund:

os.path.getctime(current_file_path)

Diese Pyhton Funktion liefert das Erstellungsdatum von Windows. In meinem Fall wird also automatisch das Datum 31.12.1979 gesetzt, weil kein Erstelldatum von Windows bekannt ist.

Vor dem Ausführen:

Nach dem Ausführen:

Die Lösung: EXIF-Daten und Pillow

Nach etwas Recherche stieß ich auf EXIF-Daten. Viele Kameras speichern darin Infos wie Kameramodell, GPS-Koordinaten und das originale Aufnahmedatum und die Uhrzeit!  Genau das, was ich brauchte.

Um darauf in Python zuzugreifen, entdeckte ich die Bibliothek Pillow. Sie half mir, die EXIF-Daten auszulesen. Falls keine EXIF-Daten vorhanden sind, soll das Skript wieder auf das Erstelldatum von Windows zurückgreifen

Mein verbessertes Skript in Aktion!

Nach der Anpassung funktionierte mein Skript fantastisch. Ich hab auch noch einige kleinere Änderungen gemacht (Dokumentation, Fehlerbehandlung, etc.).
Ergebnis nach dem Ausführen:

Hier ein kleiner Auszug aus dem Script, wie ich mit Pillow die EXIF-Daten nutze:

 

Und wenn du selbst Lust bekommen hast, die Welt des Programmierens zu entdecken und deine eigenen Probleme mit Code zu lösen, dann schau auf unserer Webseite vorbei! Dort findest du alle Informationen zu unserem Python Grundkurs und kannst dich direkt anmelden. Wir freuen uns auf dich!

https://ppedv.de/Schulung/Kurse/Python_Grundlagen_Programmierer_Seminar_Training_Kurs.aspx

Kommentare sind geschlossen