python:递归列出所有子目录?

python: List all subdirectories recursively?

本问题已经有最佳答案,请猛点这里访问。

我有一个根目录root_dir,需要编写一个方法subdirs=list_subdirs(root_dir),它将以一种形式递归返回所有子目录:

1
2
3
4
5
6
7
/subdir1
/subdir1/subsubdir1
/subdir1/subsubdir2
/subdir1/subsubdir3
/subdir2
/subdir2/subsubdir1
etc...

os.walk()是正确的方式吗?


似乎这就是诀窍:

1
2
3
4
5
def list_subdirs(in_path):
    subdirs = []
    for x in os.walk(in_path):
        subdirs.append(x[0])
    return subdirs