Python批量处理文件需遵循遍历+读取+解析+保存四步闭环,关键在于选用合适模块并规避路径与编码问题:统一用pathlib.Path处理路径、优先utf-8编码、非正则优先提取、结构化数据用pandas汇总、添加进度提示与错误反馈。

用Python批量处理文件,核心是遍历+读取+解析+保存四步闭环。关键不在写多复杂,而在选对模块、避开路径和编码坑。
一、统一读取不同后缀的文件
常见文本类文件(.txt/.csv/.log/.md)可用内置open(),但必须显式指定编码;Excel(.xlsx)需pandas或openpyxl;JSON用json模块最稳妥。
- 建议统一用
utf-8打开,遇到乱码再试gbk或latin-1 - 用
pathlib.Path替代os.path,路径拼接更直观,比如dir_path / "data" / "file.txt" - 跳过隐藏文件和目录:
if file.is_file() and not file.name.startswith(".")
二、按规则提取内容(非正则优先)
别一上来就写正则。先看数据结构:是固定列宽?有分隔符?含标准字段名?能用split()、csv.reader或pandas.read_csv()就不用正则。
- 日志类文本常用
line.startswith("ERROR")快速过滤 - CSV若含逗号在字段内,务必用
csv模块,别用str.split(",") - 需要正则时,提前编译:
pattern = re.compile(r"\d{4}-\d{2}-\d{2}"),避免循环里重复编译
三、结果汇总与自动保存
批量解析后不导出等于白干。推荐两种方式:
立即学习“Python免费学习笔记(深入)”;
- 结构化数据(如表格)→ 用
pandas.DataFrame收集,最后.to_csv("output.csv", index=False) - 纯文本汇总 → 每次
with open(..., "a", encoding="utf-8") as f:追加,注意首次清空旧文件 - 保留原始文件名关联结果:
result["source"] = file.name,方便溯源
四、加个简单进度提示,别让脚本“假死”
处理上百个文件时,没反馈容易误判卡住。不用第三方库,用内置print()配合\r回车即可。
- 示例:
print(f"\r处理中: {i}/{total} ({file.name})", end="", flush=True) - 报错别吞掉:
except Exception as e: print(f"❌ {file.name}: {e}"),便于定位问题文件 - 完成加个✅提示:
print(f"\n✅ 全部完成,共处理 {total} 个文件")










