使用Python快速获取所有子目录

时间:2020-05-12 18:39:18

标签: python subdirectory os.walk

我知道如何在给定目录中列出所有子目录的问题已得到解答in this question from 2011。它包含以下公认的解决方案:

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

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

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

谢谢, 亚历克斯

1 个答案:

答案 0 :(得分:1)

您可以为此使用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)