from pathlib import Path
from PIL import Image
from PIL.ExifTags import TAGS
import os

#define function to retrieve exif table data
def get_exif(file_data):
    ret = {}
    i = Image.open(file_data)
    info = i._getexif()
    for tag, value in info.items():
        decoded = TAGS.get(tag, tag)
        ret[decoded] = value
    return ret

#iterate over Downloads directory
for filename in Path("/home/stjude1982/Downloads").glob("*.jpg"):
    exif = get_exif(filename)
    #check if file contains exif data
    if "DateTimeOriginal" in exif:
        source = filename
        destination = Path(filename).with_name(datetime.strptime(exif["DateTimeOriginal"], "%Y:%m:%d %H:%M:%S"))
        os.rename(source, destination)
        print(destination)
    else:
        print(f"[WARNING] {filename}: no EXIF header")