# group_photos_by_date_taken.py -rw-r--r-- 466 bytes View raw
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
from PIL import Image
import shutil
import os
from pillow_heif import register_heif_opener

register_heif_opener()

for file in os.listdir():
    if not (file.endswith("JPG") or file.endswith("HEIC")):
        continue
    im = Image.open(file)
    date = im.getexif().get(306)
    if date is None:
        print(f"no exif for {file}")
        continue
    dir = date[:7].replace(":", "-")

    os.makedirs(dir, exist_ok=True)
    shutil.move(file, f"{dir}/{file}")