the*_*_RR 3 python treeview tree directory-structure
这个问题的目的是扩大 stackoverflow 上已经回答的问题的范围“在 python 中列出目录树结构? ”。
\n目标是形成一个字符串列表,直观地表示带有分支的目录树。
\n但是,输入不是有效的目录路径(如已回答的主题中所示),\n我们的任务是生成与输入相同的“路径文件列表”行为。
\n当然,该函数需要递归才能适应任何深度的文件。
\n示例
\n输入:
\n[\'main_folder\\\\file01.txt\',\n \'main_folder\\\\file02.txt\',\n \'main_folder\\\\folder_sub1\\\\file03.txt\',\n \'main_folder\\\\folder_sub1\\\\file04.txt\',\n \'main_folder\\\\folder_sub1\\\\file05.txt\',\n \'main_folder\\\\folder_sub1\\\\folder_sub1-1\\\\file06.txt\',\n \'main_folder\\\\folder_sub1\\\\folder_sub1-1\\\\file07.txt\',\n \'main_folder\\\\folder_sub1\\\\folder_sub1-1\\\\file08.txt\',\n \'main_folder\\\\folder_sub2\\\\file09.txt\',\n \'main_folder\\\\folder_sub2\\\\file10.txt\',\n \'main_folder\\\\folder_sub2\\\\file11.txt\']\nRun Code Online (Sandbox Code Playgroud)\n输出:
\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 file01.txt\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 file02.txt\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 folder_sub1\n\xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 file03.txt\n\xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 file04.txt\n\xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 file05.txt\n\xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 folder_sub1-1\n\xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 file06.txt\n\xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 file07.txt\n\xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 file08.txt\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 folder_sub2\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 file09.txt\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 file10.txt\n \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 file11.txt\nRun Code Online (Sandbox Code Playgroud)\n将文件路径列表转换为表示目录结构的嵌套字典已在主题“ Python 将路径转换为字典”中得到解答。\n使用以下输出:
\n{\'main_folder\': {\'file01.txt\': \'txt\',\n \'file02.txt\': \'txt\',\n \'folder_sub1\': {\'file03.txt\': \'txt\',\n \'file04.txt\': \'txt\',\n \'file05.txt\': \'txt\',\n \'folder_sub1-1\': {\'file06.txt\': \'txt\',\n \'file07.txt\': \'txt\',\n \'file08.txt\': \'txt\'}},\n \'folder_sub2\': {\'file09.txt\': \'txt\',\n \'file10.txt\': \'txt\',\n \'file11.txt\': \'txt\'}}}\nRun Code Online (Sandbox Code Playgroud)\n但是用分支生成漂亮的布局仍然没有解决。
\n小智 6
bigtree是一个与 Python 列表、字典和 pandas DataFrame 集成的 Python 树实现。
对于这个场景,我们可以使用3行代码,
\npath_list = [\n \'main_folder\\\\file01.txt\',\n \'main_folder\\\\file02.txt\',\n \'main_folder\\\\folder_sub1\\\\file03.txt\',\n \'main_folder\\\\folder_sub1\\\\file04.txt\',\n \'main_folder\\\\folder_sub1\\\\file05.txt\',\n \'main_folder\\\\folder_sub1\\\\folder_sub1-1\\\\file06.txt\',\n \'main_folder\\\\folder_sub1\\\\folder_sub1-1\\\\file07.txt\',\n \'main_folder\\\\folder_sub1\\\\folder_sub1-1\\\\file08.txt\',\n \'main_folder\\\\folder_sub2\\\\file09.txt\',\n \'main_folder\\\\folder_sub2\\\\file10.txt\',\n \'main_folder\\\\folder_sub2\\\\file11.txt\']\n\nfrom bigtree import list_to_tree, print_tree\nroot = list_to_tree(path_list, sep="\\\\")\nprint_tree(root)\nRun Code Online (Sandbox Code Playgroud)\n这将导致输出,
\nmain_folder\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 file01.txt\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 file02.txt\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 folder_sub1\n\xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 file03.txt\n\xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 file04.txt\n\xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 file05.txt\n\xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 folder_sub1-1\n\xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 file06.txt\n\xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 file07.txt\n\xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 file08.txt\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 folder_sub2\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 file09.txt\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 file10.txt\n \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 file11.txt\nRun Code Online (Sandbox Code Playgroud)\n来源/免责声明:我是bigtree;)的创建者
| 归档时间: |
|
| 查看次数: |
3166 次 |
| 最近记录: |