Python Bilder nach EXIF-Daten in Ordner sortieren

Der Jockel

Ensign
Registriert
Nov. 2016
Beiträge
150
Ich habe einen Ordner mit ca. 50000 Bildern diese würde ich gerne mit einem Skript nach folgendem Schema in Ordner kopieren/verschieben:

Kameramodell auslesen-> Ordner Vorhanden?(-> wenn nicht erstellen)-> in Ordner verschieben ->wenn Kameramodell nicht vorhanden in Ordner "manuell sortieren" verschieben

hier ist auch ein Script der das ganze nach Datum macht:
https://github.com/tfrdidi/sort-PhotorecRecoveredFiles/blob/master/jpgSorter.py

nur leider bin ich im Programmieren nicht sehr versiert und brauche deshalb Hilfe (will nichts falsch machen :freak: )
 
Code:
import os
import exifread

source = "/Path/to/source/" #Quelle fuer Bilder
target = "/Path/to/target/" #Zielverzeichnis
tagNameForCameraModel = "EXIF KAMERA" #Hier die EXIF Property einfüllen

for file in os.listdir(source): #Alle Dateien werden verarbeitet.
  imagePath = os.path.join(source, file) 
  image = open(imagePath, 'rb')
  try:
    exifTags = exifread.process_file(image, details=False) #auslesen von Bilddaten aus Beispiel
    model = exifTags.get(tagNameForCameraModel) #Kameramodell auslesen
    if not model: #Falls Kameramodell nicht befuellt
      model = "nomodel"
    if not os.path.exists("".join([target, model, "/"])): #Erstellen des Pfades fuer das Kameramodell
	os.makedirs("".join([target, model, "/"]))
    os.rename ("".join([source, file]), "".join([target, model, "/", file])) # Verschieben der Datei.
  except: #Ausnamehandlung aus Beispielskript fuer EXIFREAD
    print("invalid exif tags for " + fileName)

So sollte es gehen.
EXIFREAD kenne ich nicht, habe die Codeschnipsel einfach aus dem Beispiel entnommen. Auch die Ausnahmebehandlung hierfür.

Source, Target und die EXIFProperty eintragen und dann sollte es gehen.
Einfach einmal an einem Beispielordner durchprobieren.
 
Zuletzt bearbeitet:
Zurück
Oben