Jörg Tewes <
jogi...@gmx.net>:
>Eckhard Becker schrieb:
>> Am 07.09.2015 um 11:43 schrieb Jörg Tewes:
>>> Eckhard Becker schrieb:
>>>
>>>> Und wenn ich es richtig verstanden habe geht es um das Umbenennen nach
>>>> EXIF-Datum und nicht darum, das Modification-Date der Datei selbst
>>>> anzupassen.
>>>
>>> Du hast falsch verstanden. Es geht darum das Datum anzupassen.
>>> Umbenennen ist kein Problem.
>> Arg, ok.
>>
>> Dann würde mich interessieren, warum du das willst/brauchst.
>
>Weil die Dateien alle ein Datum von der letzten Wiederherstellung haben,
>das hatte ich im Ausgangsposting schon geschrieben.
Tja, einige schwere Fälle von
https://en.wiktionary.org/wiki/male_answer_syndrome hier.
Auf die Gefahr hin, in die selbe Falle zu tappen, ich würde dergleichen
ungefähr so machen:
1 # -*- coding: utf-8 -*-
3 jpgpath="/mnt/sdcard2/examples"
4 from container import *
5 import os,glob
6 z=os.path.join(context.external,"exifread.zip")
8 sys.path.append(z)
10 from adjustexif import adjust
11 def main():
12 anpassen=Box("Timestamp anpassen",size=(6,2))
13 display.add(anpassen)
14 def action(self):
15 jpgs=glob.glob(os.path.join(jpgpath,"*.jpg"))
16 adjust(jpgs)
18 anpassen.setaction(action)
Funktioniert unter den bereits erläuterten Randbedingungen (!)
problemlos.
adjust.py enthält i.W.
1 import sys,glob,time,os
2 from datetime import datetime
3 from strptime import strptime
4 from exifread import process_file
6 def timestamp(s):
7 return strptime(s,"%Y:%m:%d %H:%M:%S")
10 def adjust(what):
11 for j in what:
12 with open(j,"r") as jf:
13 exif = process_file(jf)
14 dt= exif["EXIF DateTimeOriginal"]
16 ts=timestamp(dt.values)
17 time_t=time.mktime(ts)
18 os.utime(j,(time_t,time_t))