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

5

我正在使用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)

它几乎可以工作。问题在于,它不仅返回最深层次的文件夹,还包括它们的父级文件夹。我在格式化全局模式方面犯了一些错误吗?或者有没有更好的方法只列出最深层次元素?

1个回答

4
我认为您想要:

我认为您希望:

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

根据文档说明:** 模式表示“此目录及其所有子目录,递归地”,而一个 * 是文本通配符。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接