使用glob、os.walk和pathlib可批量处理文件。1. glob通过通配符快速匹配如*.txt文件;2. os.walk遍历目录并用endswith筛选;3. pathlib提供面向对象的现代路径操作;按场景选择方法,结合异常处理,高效实现文件批量操作。
在日常开发或数据处理中,经常需要对某一类型的文件进行批量操作,比如批量读取、重命名、转换格式等。Python 提供了简洁高效的方式来实现这一需求。核心思路是:遍历指定目录,筛选出符合后缀名的文件,然后逐一处理。
glob 模块可以根据通配符快速查找符合条件的文件路径,特别适合按扩展名筛选文件。
示例代码:
import glob
import os
# 获取当前目录及子目录中所有 .csv 文件
file_list = glob.glob("**/*.csv", recursive=True)
for file_path in file_list:
print(f"处理文件: {file_path}")
# 在此处添加你的处理逻辑,如读取、修改、保存等
当需要更灵活地控制遍历过程时,os.walk 是一个强大选择。它可以逐层进入目录,分别获取路径、子目录名和文件名。
通过判断文件扩展名(如用 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}")
# 添加具体处理逻辑
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}")
# 例如:解析内容、统计大小等
根据任务类型选择合适的方法:
处理过程中注意异常捕获,避免因个别文件出错导致整个流程中断。
基本上就这些,掌握这几种方式后,
无论处理日志、配置、数据还是脚本文件,都能轻松应对。关键是先定位文件,再叠加业务逻辑。