这个问题旨在扩大已经在stackoverflow上通过主题 "List directory tree structure in python?" 回答的问题的范围。
目标是形成一个字符串列表,以可视化表示目录树,包括分支。
但是,与已回答的主题中输入为有效的目录路径不同, 该问题的输入是作为"路径文件列表"。
自然地,该函数需要递归以适应任何深度的文件。
例子
输入:
['main_folder\\file01.txt',
'main_folder\\file02.txt',
'main_folder\\folder_sub1\\file03.txt',
'main_folder\\folder_sub1\\file04.txt',
'main_folder\\folder_sub1\\file05.txt',
'main_folder\\folder_sub1\\folder_sub1-1\\file06.txt',
'main_folder\\folder_sub1\\folder_sub1-1\\file07.txt',
'main_folder\\folder_sub1\\folder_sub1-1\\file08.txt',
'main_folder\\folder_sub2\\file09.txt',
'main_folder\\folder_sub2\\file10.txt',
'main_folder\\folder_sub2\\file11.txt']
输出:
├── file01.txt
├── file02.txt
├── folder_sub1
│ ├── file03.txt
│ ├── file04.txt
│ ├── file05.txt
│ └── folder_sub1-1
│ ├── file06.txt
│ ├── file07.txt
│ └── file08.txt
└── folder_sub2
├── file09.txt
├── file10.txt
└── file11.txt
将文件路径列表转换为表示目录结构的嵌套字典已在主题 "Python convert path to dict" 中得到回答。 具有以下输出:
{'main_folder': {'file01.txt': 'txt',
'file02.txt': 'txt',
'folder_sub1': {'file03.txt': 'txt',
'file04.txt': 'txt',
'file05.txt': 'txt',
'folder_sub1-1': {'file06.txt': 'txt',
'file07.txt': 'txt',
'file08.txt': 'txt'}},
'folder_sub2': {'file09.txt': 'txt',
'file10.txt': 'txt',
'file11.txt': 'txt'}}}
但是使用分支生成美观的布局仍然没有解决。