Files
media-scripts/mv_dng.py
2019-09-12 22:14:01 +02:00

45 lines
1.4 KiB
Python

#!python3
# https://github.com/hMatoba/Piexif
# http://ce3wiki.theturninggate.net/doku.php?id=file_name_convention
# destination: <BASE>/<year>/<YYYYMMDD> <Event>/ab-<YYYYMMDD>-<Event>-<nnnn>.jpg
from pathlib import Path
import datetime as dt
import piexif
from collections import defaultdict
import re
src = Path(r'E:\MediaArchive\Andreas\MaxQByDate')
dest1 = Path(r"E:\MediaArchive\Andreas\RawByCamera\Minolta Dynax 5")
dest2 = Path(r'E:\MediaArchive\Andreas\RawByCamera\Sony a5100')
dry_run = False
for mrw in src.rglob("*.dng"):
mo = re.match("ab-(?P<dt>\S*-\S*).dng", mrw.name)
if mo is None:
print(f"skipped {mrw.name}, no match")
continue
md = mo.groupdict()
try:
mrwdt = dt.datetime.strptime(md['dt'],"%Y%m%d-%H%M%S")
except:
print(f"skipped {mrw.name}, unknown format")
continue
# move avi to raw Sony
if mrwdt.year > 2010:
mrw_dir = dest2 / str(mrwdt.year) / f"{mrwdt:%Y%m%d}"
else:
mrw_dir = dest1 / str(mrwdt.year) / f"{mrwdt:%Y%m%d}"
mrw_n = mrw_dir / mrw.name
if not mrw_dir.exists():
if not dry_run:
print(f"creating {mrw_dir}")
mrw_dir.mkdir(parents=True)
print(mrw.name, "->", mrw_n)
if not mrw_n.exists():
if not dry_run:
mrw.rename(mrw_n)
else:
print(f"skipped {mrw.name}, {mrw_n}, already exists")