Алгоритм сортировки файлов по дате их изменения работает неправильно

1misha23

Новичок
Пользователь
Июл 23, 2020
1
0
1
На 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]}
 

Форум IT Специалистов