如何生成Python目录列表树形结构?

问题描述

我知道我们可以使用os.walk()列出目录中的所有子目录或所有文件。如何生成如下的树结构,而不仅仅是列出所有目录?在某些子目录中,我有数百个文件,那么,如何在子目录中仅显示几个文件而不列出所有文件

doc/
├── _static/
│   ├── embedded/
│   │   ├── deep_file
│   │   └── very/
│   │       └── deep/
│   │           └── folder/
│   │               └── very_deep_file1
|   |               └── very_deep_file2
|   |               └── ......
│   └── less_deep_file
├── about.rst
├── conf.py
└── index.rst

解决方法

以下内容可能会对您有所帮助:

for directory,_,filenames in os.walk('your path'):
    for filename in filenames:
        print(os.path.join(directory,filename))
,

os.walk会在您进行迭代时为您提供一个root,directories,files。为什么不简单地在files[:5]上循环,然后在长度超过5时再打印...