首页 > 解决方案 > 使用 Python 快速获取所有子目录

问题描述

我知道如何列出给定目录中的所有子目录的问题在 2011 年的这个问题中得到了回答。它包括这个公认的解决方案:

subdirs = [x[0] for x in os.walk(dirToSearch)]

当目录中只有几个文件时,这很好用。但是,我试图在包含数千个文件的文件夹上使用它,并且os.walk显然正在遍历所有文件,这意味着它需要很长时间才能运行。有没有办法做到这一点(识别所有子目录)而不会被文件所困扰?os.walk忽略文件的替代方法?

我正在尝试在 Windows 网络目录上执行此操作。

谢谢,亚历克斯

标签: pythonsubdirectoryos.walk

解决方案


你可以用pathlib这个。

这将获得所有直接子目录:

from pathlib import Path

p = Path('.')
subdirs = [x for x in p.iterdir() if x.is_dir()]

这将获得所有嵌套的子目录:

for subdir in p.glob('**/'):
     print(subdir.name)

推荐阅读