Bilder sortieren/ Ordner anlegen
Verfasst: Dienstag 25. Mai 2021, 21:31
hallo zusammen
hintergrundinformationen(lesefaule können das überspringen
)
im rahmen eines projektes für mein studium (ich studiere nicht informatik oder irgendwas in diese richtung) versuche ich ein sortierprogramm für bilder zu schreiben.
ich bin ziemlich neu, was programmieren anbelangt, also bitte habt nachsicht, falls ich mal dumme fragen stelle
da wir mehrere projektmitglieder sind, und alle recht unerfahren, arbeiten wir aktuell an unters. dateien, diese funktionieren tw. auch
für die "struktur" des programmes haben wir uns folgendes überlegt:
1. programmstart
2. ordner auswählen in dem die bilder sind
3. popup fenster mit buttons für die gewünschten filterkriterien (z.b. autor, datum etc)
4. automatisches erstellen von ordnern für die unterschiedlichen werte beim filterkriterium (also falls nach autor(=filterkriterium) sortiert wurde, wird ein ordner autor1, autor2(=werte) erstellt)
5. die bilder aus dem ursprungsordner werden in die neu erstellten ordner verschoben bzw. kopiert (muss dann noch mit schritt 3 verbunden werden)
6. bestätigungsmeldung
aktuell haben wir beim 4. schritt probleme
der folgende code dreht sich nur um schritt4, denke das ist übersichtlicher
eigentliches problem:
wir haben es geschafft, dass ein ordner mit dem namen des autors erstellt wird, allerdings muss der name der bilddatei "manuell" eingegeben werden (im code: MicrosoftTeams-image.jpg) und der code funktioniert nur für ein bild. unser ziel wäre es, dass es automatisch alle bilddateien im ursprungsordner einliest und dann nach den werten bzw. autoren mehrere ordner erstellt
hat jemand einen tipp wie ich das realisieren kann, ich erwarte hier auch keinen funktionierenden code, aber wäre dankbar wenn mir jemand sagen könnte mit welchen funktionen/befehlen ich das umsetzen kann oder nach welchen stichwörtern ich suchen sollte. ich vermute ich muss irgendwie eine if funktion einbauen, die den ursprungsordner solange durchgeht, bis jeder autor einen eigenen ordner hat
schonmal danke im voraus für eure antworten
hintergrundinformationen(lesefaule können das überspringen

im rahmen eines projektes für mein studium (ich studiere nicht informatik oder irgendwas in diese richtung) versuche ich ein sortierprogramm für bilder zu schreiben.
ich bin ziemlich neu, was programmieren anbelangt, also bitte habt nachsicht, falls ich mal dumme fragen stelle
da wir mehrere projektmitglieder sind, und alle recht unerfahren, arbeiten wir aktuell an unters. dateien, diese funktionieren tw. auch
für die "struktur" des programmes haben wir uns folgendes überlegt:
1. programmstart
2. ordner auswählen in dem die bilder sind
3. popup fenster mit buttons für die gewünschten filterkriterien (z.b. autor, datum etc)
4. automatisches erstellen von ordnern für die unterschiedlichen werte beim filterkriterium (also falls nach autor(=filterkriterium) sortiert wurde, wird ein ordner autor1, autor2(=werte) erstellt)
5. die bilder aus dem ursprungsordner werden in die neu erstellten ordner verschoben bzw. kopiert (muss dann noch mit schritt 3 verbunden werden)
6. bestätigungsmeldung
aktuell haben wir beim 4. schritt probleme
der folgende code dreht sich nur um schritt4, denke das ist übersichtlicher
eigentliches problem:
wir haben es geschafft, dass ein ordner mit dem namen des autors erstellt wird, allerdings muss der name der bilddatei "manuell" eingegeben werden (im code: MicrosoftTeams-image.jpg) und der code funktioniert nur für ein bild. unser ziel wäre es, dass es automatisch alle bilddateien im ursprungsordner einliest und dann nach den werten bzw. autoren mehrere ordner erstellt
hat jemand einen tipp wie ich das realisieren kann, ich erwarte hier auch keinen funktionierenden code, aber wäre dankbar wenn mir jemand sagen könnte mit welchen funktionen/befehlen ich das umsetzen kann oder nach welchen stichwörtern ich suchen sollte. ich vermute ich muss irgendwie eine if funktion einbauen, die den ursprungsordner solange durchgeht, bis jeder autor einen eigenen ordner hat
Code: Alles auswählen
from PIL import Image
from PIL.ExifTags import TAGS
import os
image = Image.open("MicrosoftTeams-image.jpg")
exifdata = image.getexif()
for tag_id in exifdata:
tag = TAGS.get(tag_id, tag_id)
data = exifdata.get(tag_id)
if isinstance(data, bytes):
data = data.decode(encoding='latin-1', errors='strict')
if tag == "Artist":
os.makedirs(data, mode = 0o777, exist_ok = True)