Помогаю: всё делается через модули os, datetime и shutil.
1.Сперва читаем все файлы в папке через os.listdir(), либо, если если вложенные папки обходим их, например через os.walk(). Получаем полный путь и имя файла.
2.Для каждого файла считываем данные о дате создания и/или изменения. Для этого используется os.path.getctime() и os.path.getmtime() соответственно.
Данные мы получаем в unix-времени, т.е. вплоть до секунд, а нам надо только год и месяц причём строкой и в понятном формате. Через datetime отрезаем лишнее как-то так:
datetime.fromtimestamp(data).strftime('%Y.%B')
Это вернёт нам запись вида '2023.October'. Используем это для создания папки.
3. Папки создаются через os.makedirs('path'). Чтобы не создавать одноименные папки под каждую фотографию надо сперва проверять нет ли уже такой папки по пути path. Допустим, так:
try:
os.makedirs(path)
except FileExistsError:
pass
4.Ну и чтобы перемещать файл используется shutil.move(), где в качестве первого аргумента идёт путь прочитанный в п.1+ имя файла, а вторым путь из п.4. + имя файла.