You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Pathlib模块替代os.walk()实现目录遍历?

用Pathlib替代os.walk()的方法

os.walk()的作用是递归遍历目录,返回当前目录路径、子目录列表、文件列表。用Pathlib实现类似效果有两种常见方式:

1. 快速遍历所有文件/目录(用rglob())

如果你的需求只是遍历所有文件(包含子目录里的),rglob()是最简洁的选择,它能匹配指定模式的所有路径:

from pathlib import Path

target_dir = Path("目标目录路径")
# 遍历所有条目(文件+目录),也可以指定模式比如"*.txt"只找文本文件
for item in target_dir.rglob("*"):
    if item.is_file():
        # 处理文件,比如传入路径给doSomething
        doSomething(item)
    # 如需处理目录,可加elif item.is_dir():

2. 完全模拟os.walk()的返回格式

如果需要和os.walk()一样返回「当前目录、子目录列表、文件列表」的结构,可以自己写个递归函数:

from pathlib import Path

def path_walk(path: Path):
    subdirs = []
    files = []
    # 遍历当前目录下的所有条目
    for item in path.iterdir():
        if item.is_dir():
            subdirs.append(item.name)
            # 递归处理子目录,把结果yield出来
            yield from path_walk(item)
        else:
            files.append(item.name)
    # 返回当前目录的信息
    yield (str(path), subdirs, files)

# 使用方式和os.walk一致
target_dir = Path("目标目录路径")
for dir_path, subdirs, filenames in path_walk(target_dir):
    doSomething()

内容的提问来源于stack exchange,提问作者prachi sutane

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 23:42:08