На OS X Python 3.7 я написал функцию, которая сортирует файлы, находящиеся в исходной папке в словарь словарей по дате их последнего изменения. Сортировка происходит по году и месяцу. Схематично конечный результат должен выглядеть так: {2019: {1: [object_1, object_2], 2:[object_3]}, 2018: {1: [object_4], 5: [object_5, object_6]}. Мой код не справляется с задачей, создает нужные ключи по годам и месяцам, но к каждому месяцу присваивает значение одного объекта, а должно быть намного больше (в исходной папке 400 файлов). На выходе в словаре вместо 400 отсортированных файлов вижу 12 файлов. Вот мой код:
Python:
dict_year = {}
def get_time(path):
path_normalized = os.path.normpath(path)
for dirpath, dirnames, filenames in os.walk(path_normalized):
for file in filenames:
full_file_path = os.path.join(dirpath, file)
stat = os.stat(full_file_path)
time = stat.st_mtime
file_time = tm.gmtime(time)
if file_time[0] in dict_year:
for month in dict_year.values():
if file_time[1] in dict_year.values():
dict_year[file_time[0]][file_time[1]].append(full_file_path)
break
else:
dict_year[file_time[0]][file_time[1]] = [full_file_path]
else:
dict_year[file_time[0]] = {file_time[1]: [full_file_path]}