Мне нужно создать вложенный словарь, который представляет структуру каталогов, используя os
со следующими правилами:
1) если папка содержит более одного элемента, значение представляет собой список словарей или имен файлов;
2) если папка содержит только файл, значением является просто его имя
3) если папка содержит вложенные папки, значением является словарь
Я полагаю, что это очень ясно видно на примере изображения , где вы можете увидеть структуру каталогов и структуру словаря, которые необходимы в результате:
Я проверил вопросы, которые близки к моим, но не могу понять, как Я должен сделать свою задачу. Это код, который я написал, но он далек от решения. Я застрял, потому что не знаю, как правильно организовать рекурсивный обход папок:
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)
Как мне это сделать?