在日常的Python编程中,Python目录遍历是一项非常基础且实用的技能。无论是批量处理文件、查找特定类型文档,还是构建文件管理系统,掌握如何高效地遍历文件夹结构都是必不可少的。
想象一下,你有一个包含成百上千个文件的项目文件夹,需要找出所有以 .log 结尾的日志文件,或者统计某个目录下所有图片的总大小。手动操作显然不现实,而通过Python文件遍历,只需几行代码即可完成。
os.walk() 是 Python 标准库中最常用的目录遍历工具。它会递归地遍历指定目录下的所有子目录和文件,并返回一个生成器。
基本语法如下:
import osfor root, dirs, files in os.walk('目标目录路径'): print(f"当前目录: {root}") print(f"子目录列表: {dirs}") print(f"文件列表: {files}") print("-" * 40) 其中:
root:当前正在遍历的目录路径dirs:该目录下的子目录名列表files:该目录下的文件名列表import osdef find_txt_files(directory): txt_files = [] for root, dirs, files in os.walk(directory): for file in files: if file.endswith('.txt'): full_path = os.path.join(root, file) txt_files.append(full_path) return txt_files# 使用示例results = find_txt_files('./my_project')for path in results: print(path) 从 Python 3.4 开始,官方推荐使用 pathlib 模块进行路径操作。它提供了面向对象的接口,代码更清晰易读。
from pathlib import Path# 遍历当前目录下所有 .py 文件directory = Path('./my_project')for py_file in directory.rglob('*.py'): print(py_file.resolve()) # 输出绝对路径 这里 rglob() 表示“递归 glob”,即在整个目录树中匹配模式。相比 os.walk(),这种方式更直观,尤其适合简单过滤场景。
| 特性 | os.walk() | pathlib.rglob() |
|---|---|---|
| Python 版本支持 | 所有版本 | ≥3.4 |
| 语法简洁性 | 较繁琐 | 非常简洁 |
| 控制粒度 | 高(可修改 dirs 列表跳过子目录) | 较低 |
os.path.exists() 或 Path.exists() 检查)无论是传统的 os.walk() 还是现代的 pathlib,Python 都为我们提供了强大而灵活的文件系统操作能力。初学者可以从 os.walk 入手理解遍历逻辑,进阶后可尝试 pathlib 提升代码可读性。掌握这些技巧,你就能轻松应对各种Python目录遍历任务!
希望这篇教程能帮助你迈出自动化文件处理的第一步!
本文由主机测评网于2025-12-19发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://vpshk.cn/2025129984.html