Directory-tree 列表限制器 Python

Directory-tree listing limiter Python

正如标题所解释的那样,我已经尝试了几个来自该站点的已经发布的问题的答案。问题是,我正在尝试 select 我挖掘到的文件夹的级别。例如,如果我只想 select 直接子目录,它看起来像这样:

Subfolder #1
Subfolder #2
Subfolder #3
Subfolder #4

但是如果我想同时显示已经提到的子目录的直接子目录,它看起来像这样:

Subfolder #1
  Subfolder #1 of the subfolder #1
  Subfolder #2 of the subfolder #1
Subfolder #2
  Subfolder #1 of the subfolder #2
Subfolder #3
Subfolder #4
  Subfolder #1 of the subfolder #4
  Subfolder #2 of the subfolder #4
  Subfolder #3 of the subfolder #4

PD:我是 Python 的新手,所以我可能遗漏了很明显的东西。

编辑:我重新表述了问题,这样我就可以更好地解释我的问题,因为它显然令人困惑,而且我所说的方式没有任何意义。

如果我正确理解问题,这应该可以满足您的要求。这是一个简单的递归函数,它只记录 "deep" 它进入目录的方式,并在达到所需的递归次数时完成。如果您需要更多解释,请告诉我。

import os

search_dir = "path/to/dir"
inspection_depth = 1

def walk(path, depth):
    depth += 1
    folders = [f for f in os.listdir(path) if os.path.isdir(os.path.join(path, f))]

    for folder in folders:
        full_path = os.path.join(path, folder)
        print(full_path)

        if depth < inspection_depth:
            walk(full_path, depth)

# Call the recursive function
walk(search_dir, 0)