Python. Создать вложенный словарь из иерархии каталогов - PullRequest
0 голосов
/ 16 апреля 2020

Мне нужно создать вложенный словарь, который представляет структуру каталогов, используя os со следующими правилами:

1) если папка содержит более одного элемента, значение представляет собой список словарей или имен файлов;

2) если папка содержит только файл, значением является просто его имя

3) если папка содержит вложенные папки, значением является словарь

Я полагаю, что это очень ясно видно на примере изображения , где вы можете увидеть структуру каталогов и структуру словаря, которые необходимы в результате:

Example

Я проверил вопросы, которые близки к моим, но не могу понять, как Я должен сделать свою задачу. Это код, который я написал, но он далек от решения. Я застрял, потому что не знаю, как правильно организовать рекурсивный обход папок:

def my_folder_analysis(dir_name):
    dir = {}
    for root, dirs, files in os.walk(dir_name):
        for subdir in dirs:
            if len(os.listdir(os.path.join(root, subdir))) > 1:
                subdir_dict = {subdir : []}
                for x in os.listdir(os.path.join(root, subdir)):
                    if os.path.isfile(os.path.join(root, subdir, x)):
                        #add file to list of folder elements
                        subdir_dict[subdir].append(x)

Как мне это сделать?

...