使用glob、os.walk和pathlib可批量处理文件。1. glob通过通配符快速匹配如*.txt文件;2. os.walk遍历目录并用endswith筛选;3. pathlib提供面向对象的现代路径操作;按场景选择方法,结合异常处理,高效实现文件批量操作。

在日常开发或数据处理中,经常需要对某一类型的文件进行批量操作,比如批量读取、重命名、转换格式等。Python 提供了简洁高效的方式来实现这一需求。核心思路是:遍历指定目录,筛选出符合后缀名的文件,然后逐一处理。
1. 使用 glob 模块匹配指定类型文件
glob 模块可以根据通配符快速查找符合条件的文件路径,特别适合按扩展名筛选文件。
- 使用 glob("*.txt") 可获取当前目录下所有 .txt 文件
- 使用 glob("**/*.py", recursive=True) 可递归查找所有子目录中的 .py 文件
示例代码:
AlegroCart新功能:维类:包括在这两种线性长宽高或面积或体积长波产品尺寸允许与期权产品:让产品/期权组合独特的数量,尺寸,图像和型号。选择店铺标识管理 图片放大镜:显示一个图片放大上空盘旋时,产品形象弹出框。自定义错误报告:设置在管理员启用。 开发者只可以显示详细的信息。错误信息都写入到错误日志文件每天可以通过电子邮件发送给管理员。仓库皮卡航运模块:允许客户指定产品在商店的位置回升。增加了
import glob
import os
# 获取当前目录及子目录中所有 .csv 文件
file_list = glob.glob("**/*.csv", recursive=True)
for file_path in file_list:
print(f"处理文件: {file_path}")
# 在此处添加你的处理逻辑,如读取、修改、保存等
2. 使用 os.walk 遍历目录并筛选文件
当需要更灵活地控制遍历过程时,os.walk 是一个强大选择。它可以逐层进入目录,分别获取路径、子目录名和文件名。
立即学习“Python免费学习笔记(深入)”;
通过判断文件扩展名(如用 str.endswith()),可以精确筛选目标类型。
示例代码:
import os
target_dir = "./data"
for root, dirs, files in os.walk(target_dir):
for file in files:
if file.endswith(".log"):
file_path = os.path.join(root, file)
print(f"找到日志文件: {file_path}")
# 添加具体处理逻辑
3. 结合 pathlib 实现现代风格路径操作
Python 3.4+ 推荐使用 pathlib,它提供面向对象的方式处理文件系统路径,语法更直观。
Path.rglob() 或 Path.glob() 可直接匹配指定模式的文件。
示例代码:
from pathlib import Path
# 查找所有 .json 文件
json_files = Path("./").rglob("*.json") # 递归查找
for file_path in json_files:
if file_path.is_file():
print(f"处理 JSON 文件: {file_path}")
# 例如:解析内容、统计大小等
4. 实际应用场景建议
根据任务类型选择合适的方法:
- 简单同级目录筛选 → 用 glob.glob("*.ext")
- 复杂目录结构遍历 → 用 os.walk 或 pathlib.Path.rglob()
- 需跨平台兼容路径处理 → 优先使用 pathlib
处理过程中注意异常捕获,避免因个别文件出错导致整个流程中断。
基本上就这些,掌握这几种方式后,无论处理日志、配置、数据还是脚本文件,都能轻松应对。关键是先定位文件,再叠加业务逻辑。









