python字典树状目录输出的方法

2023-02-23 00:00:00 输出 字典 树状

在 Python 中,可以使用字典来表示树状目录,并通过递归遍历字典来输出树状目录。

下面是一个简单的示例,假设我们有以下树状目录:

markdown
Copy code
root
├── dir1
│ ├── file1.txt
│ └── file2.txt
└── dir2
├── subdir1
│ ├── file3.txt
│ └── file4.txt
└── file5.txt
可以使用以下 Python 代码将其表示为一个字典:

tree = {
    'name': 'root',
    'type': 'directory',
    'children': [
        {
            'name': 'dir1',
            'type': 'directory',
            'children': [
                {'name': 'file1.txt', 'type': 'file'},
                {'name': 'file2.txt', 'type': 'file'}
            ]
        },
        {
            'name': 'dir2',
            'type': 'directory',
            'children': [
                {
                    'name': 'subdir1',
                    'type': 'directory',
                    'children': [
                        {'name': 'file3.txt', 'type': 'file'},
                        {'name': 'file4.txt', 'type': 'file'}
                    ]
                },
                {'name': 'file5.txt', 'type': 'file'}
            ]
        }
    ]
}

然后,可以使用递归函数遍历字典并输出树状目录。下面是一个示例函数:

def print_tree(tree, indent=0):
    print(' ' * indent + tree['name'])
    if tree['type'] == 'directory':
        for child in tree['children']:
            print_tree(child, indent + 4)

该函数接受一个字典表示的树状目录 tree 和一个缩进级别 indent,并递归遍历子节点并输出其名称。如果子节点表示一个目录,则递归遍历其子节点。

可以使用以下代码调用函数并输出树状目录:

print_tree(tree)

该代码将输出以下内容:

root
    dir1
        file1.txt
        file2.txt
    dir2
        subdir1
            file3.txt
            file4.txt
        file5.txt

注意,上述代码仅提供了一个简单的示例,实际的树状目录可能比这个更复杂,因此需要根据实际情况进行适当修改。

相关文章