如何使用Pathlib在Python中遍历目录

时间:2018-11-27 10:25:32

标签: python directory glob subdirectory pathlib

我正在使用Python 3,需要使用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)

,它几乎可以正常工作。问题在于,这不仅返回最深层的文件夹,还返回其父文件夹。在格式化全局模式时是否犯了一些错误?还是只列出deepest_level元素的更好方法?

1 个答案:

答案 0 :(得分:3)

我想你想要

for a in source_path.glob("*/*/*"):
    if a.is_dir():
        print(a)

从文档中了解:**模式的意思是“此目录和所有子目录(递归)”,而一个*是文本通配符。