首页 >后端开发 >Python教程 >如何使用Python递归列出目录中的所有文件?

如何使用Python递归列出目录中的所有文件?

Barbara Streisand
Barbara Streisand原创
2024-12-19 17:21:10872浏览

How Can I Recursively List All Files in a Directory Using Python?

递归迭代文件

递归遍历目录结构以列出所有文件是常见的编程需求。在这种情况下,让我们探讨如何在 Python 中有效地完成此任务。

一种方法是使用 Python 3.5 中引入的 pathlib.Path().rglob() 方法。它提供了一种便捷的方法来识别目录及其子目录中与特定模式匹配的所有文件:

from pathlib import Path

for path in Path('src').rglob('*.c'):
    print(path.name)

如果您更喜欢使用 glob 模块,您可以利用其 glob() 函数和 recursive=True参数:

from glob import glob

for filename in glob('src/**/*.c', recursive=True):
    print(filename)

另一个选项,与旧的 Python 版本兼容,涉及使用 os.walk() 进行递归遍历和fnmatch.filter() 用于模式匹配:

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))

由于与 pathlib 模块相关的开销较低,os.walk() 技术在文件数量较多的情况下可能会更快。

无论您选择哪种方法,这些方法都将有效地帮助您递归地识别和列出指定目录及其子文件夹中的文件。

以上是如何使用Python递归列出目录中的所有文件?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn