0

正如标题所解释的,我已经尝试了这个网站上已经发布的问题的几个答案。问题是,我试图能够选择我挖掘的文件夹的级别。例如,如果我只想选择直接子目录,它看起来像这样:

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 还是很陌生,所以我可能很明显地遗漏了一些东西。

编辑:我重新提出了这个问题,所以我可以更好地解释我的问题,因为它显然令人困惑,并且按照我所说的方式没有任何意义。

4

1 回答 1

0

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

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)
于 2019-11-26T22:53:08.213 回答