首页 > 后端开发 > Python教程 > 如何使用'pathlib”、'glob”和'os.walk”在 Python 中递归查找文件?

如何使用'pathlib”、'glob”和'os.walk”在 Python 中递归查找文件?

DDD
发布: 2024-12-11 20:16:15
原创
311 人浏览过

How Can I Recursively Find Files in Python Using `pathlib`, `glob`, and `os.walk`?

递归查找文件:探索 pathlib.rglob()、glob.glob() 和 os.walk()

处理时复杂的目录结构,递归地定位文件变得至关重要。可以使用各种 Python 模块和方法来简化此任务。

一种方法是利用 Python 3.5 中引入的 pathlib.Path().rglob()。它允许直接递归文件搜索:

from pathlib import Path

for path in Path('src').rglob('*.c'):
    print(path.name)
登录后复制

或者,glob.glob() 提供了另一种递归文件列表选项:

from glob import glob

for filename in glob('src/**/*.c', recursive=True):
    print(filename)
登录后复制

此方法也支持匹配以点 (.) 开头的文件。

对于较旧的 Python 版本或速度较慢时至关重要的是,os.walk()提供了一个可靠的解决方案:

import fnmatch
import os

matches = []
for root, dirnames, filenames in os.walk('src'):
    for filename in fnmatch.filter(filenames, '*.c'):
        matches.append(os.path.join(root, filename))
登录后复制

通过根据您的Python版本和性能要求选择合适的方法,您可以有效地在目录和目录中递归列出文件子目录。

以上是如何使用'pathlib”、'glob”和'os.walk”在 Python 中递归查找文件?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板