使用 Python 快速获取所有子目录
Get all subdirectories quickly with Python
我知道如何列出给定目录中的所有子目录的问题已得到解答 in this question from 2011。它包括这个公认的解决方案:
subdirs = [x[0] for x in os.walk(dirToSearch)]
当目录中只有几个文件时,它工作正常。然而,我试图在包含数千个文件的文件夹上使用它,并且 os.walk
显然正在遍历所有这些文件,这意味着 运行 需要很长时间。有没有办法做到这一点(识别所有子目录)而不会被文件所困扰?忽略文件的 os.walk
的替代方法?
我正在尝试在 Windows 网络目录上执行此操作。
谢谢,
亚历克斯
您可以为此使用 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)
我知道如何列出给定目录中的所有子目录的问题已得到解答 in this question from 2011。它包括这个公认的解决方案:
subdirs = [x[0] for x in os.walk(dirToSearch)]
当目录中只有几个文件时,它工作正常。然而,我试图在包含数千个文件的文件夹上使用它,并且 os.walk
显然正在遍历所有这些文件,这意味着 运行 需要很长时间。有没有办法做到这一点(识别所有子目录)而不会被文件所困扰?忽略文件的 os.walk
的替代方法?
我正在尝试在 Windows 网络目录上执行此操作。
谢谢, 亚历克斯
您可以为此使用 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)