如何使用Pathlib在Python中迭代目录

如何使用Pathlib在Python中迭代目录,python,directory,glob,subdirectory,pathlib,Python,Directory,Glob,Subdirectory,Pathlib,我正在使用Python3,我需要对文件夹执行一些操作,使用Pathlib并检查它们是否是文件夹 我要做的手术是这样的: from pathlib import Path source_path = Path("path_directory_string") for a in source_path.iterdir(): if a.is_dir(): for b in a.iterdir(): if b.is_dir():

我正在使用Python3,我需要对文件夹执行一些操作,使用Pathlib并检查它们是否是文件夹

我要做的手术是这样的:

from pathlib import Path
source_path = Path("path_directory_string")

for a in source_path.iterdir():
    if a.is_dir():
        for b in a.iterdir():
            if b.is_dir():
                for c in b.iterdir():
                    if c.is_dir():
                        # do something
我的问题是,是否有更好的方法来做到这一点。回顾过去的提问,最好的方法是使用Pahtlib的glob方法。因此,由于我有三个层次的深度,我尝试了以下方法:

for a in source_path.glob("**/**/**"):
    if a.is_dir():
        print(a)
而且它几乎起作用了。问题是,这不仅返回最深级别的文件夹,还返回它们的父文件夹。我是否在设置全局模式的格式时出错?或者它是否存在一种更好的方法来列出最深层次的元素?

我想您需要:

for a in source_path.glob("*/*/*"):
    if a.is_dir():
        print(a)
从文档中可以看出:
**
模式表示“此目录和所有子目录,递归地”,而其中一个
*
是文本通配符