Seite 1 von 1

JPG-Dateien - Attribute ändern

Verfasst: Mittwoch 25. Januar 2012, 10:06
von Hein_nieH
Hallo,

für mein Fotoarchiv möchte ich ein kleines Verwaltungsprogramm in Python erstellen.
Hierbei möchte ich auch die Attribute:
- Titel,
- Thema,
- Autor,
- Stichworte und
- Kommentare
lesen und ändern können.
Ich habe bereits mit dem Modul pyexiv2 Versuche unternommen.
Attribute lesen funktioniert. Leider funktioniert das Schreiben/Ändern in diese Dateiattribute nicht.
Die Durcharbeit des Tutorials führte auch nicht zum Erfolg.
Beim Lesen werden die o.g. Dateiattribute als Bytefolge ausgegeben, siehe Ausgabe

Code: Alles auswählen

<Exif.Image.XPTitle [Byte] = 84 0 101 0 115 0 116 0 95 0 84 0 105 0 116 0 101 0 108 0 0 0>
<Exif.Image.XPComment [Byte] = 84 0 101 0 115 0 116 0 95 0 75 0 111 0 109 0 109 0 101 0 110 0 116 0 97 0 114 0 0 0>
<Exif.Image.XPAuthor [Byte] = 84 0 101 0 115 0 116 0 95 0 65 0 117 0 116 0 111 0 114 0 0 0>
<Exif.Image.XPKeywords [Byte] = 84 0 101 0 115 0 116 0 95 0 83 0 116 0 105 0 99 0 104 0 119 0 111 0 114 0 116 0 0 0>
<Exif.Image.XPSubject [Byte] = 84 0 101 0 115 0 116 0 95 0 84 0 104 0 101 0 109 0 97 0 0 0>
Beim Schreiben in die Attribute erfolgt nichts, d.h. wenn ich nach dem Skriptdurchlauf mir die Eigenschaften der Jpg-Datei im Explorer ansehe,
bleiben die o.g. Attribute unverändert.
Mein Skript läuft ohne Fehlermeldung, d.h. das Schreiben in die Dateiattribute wird ignoriert.

Hier mein Quellcode:

Code: Alles auswählen

from pyexiv2 import ImageMetadata

inFile=r"Test_Image.jpg"
metadata = ImageMetadata(inFile)
metadata.read()

for x in metadata.exif_keys:
    key=x
    print metadata[key]
metadata['Exif.Image.XPTitle'].value="Bla Bla Bla" # funktioniert nicht
metadata.write()
Kann mir jemand eine gangbare Lösung anbieten? Es muss nicht unbedingt das Modul pyexiv2 sein.
Ich nutze Python 2.6 unter Windows XP.
Zugegeben, mein Python-Kenntnisstand bewegt sich noch auf dem Einsteigerniveau.

Für eine Lösung bin ich sehr dankbar.
Gruss Hein

Re: JPG-Dateien - Attribute ändern

Verfasst: Freitag 27. Januar 2012, 19:32
von theo.puke
1. Warum weist du in der forschleife "x" , "key" zu?. Schreib am besten:

Code: Alles auswählen

print metadata[x]
Oder bennen x in key um!

2. Woher hast du Das Exif.Image.XPTitle her??? In der Documentation (http://tilloy.net/dev/pyexiv2/tutorial.html steht nichts von Exif.Image.XPTitle. Vielleicht meinst du: "Exif.Image.ImageDescription".

Hoffe ich konnte helfen