批量处理文本文件应分步构建可复用流程:优先用pathlib或glob安全定位文件,用chardet或编码列表容错读取,处理后默认输出到output/目录,加tqdm进度条与try/except错误隔离,并拆分为小函数提升可维护性。

批量处理文本文件在日常数据清洗、日志分析、文档整理中非常常见。用 Python 实现,核心是结合 os、glob、pathlib 遍历文件,再用 open 或 codecs 读写,配合 re、csv、pandas 等做内容处理。关键不是“一次写完所有功能”,而是分步构建可复用、易调试的流程。
快速定位目标文件(支持通配与递归)
别硬写 for 循环遍历目录树。优先用 pathlib(Python 3.4+ 内置,面向对象更清晰)或 glob(语法简洁)。
-
用 pathlib 找当前目录下所有 .txt 文件:
from pathlib import Path<br>files = list(Path(".").glob("*.txt"))登录后复制
-
递归查找子目录中的 .log 和 .csv:
files = list(Path(".").rglob("*.log")) + list(Path(".").rglob("*.csv")) -
用 glob 需注意:返回的是字符串路径,且不自动递归,要加
**/并设recursive=True:import glob<br>files = glob.glob("**/*.md", recursive=True)登录后复制
安全读取多种编码的文本文件
中文环境常遇到 UnicodeDecodeError。不要默认用 utf-8 硬开——先尝试 utf-8,失败后自动 fallback 到 gbk 或检测编码。
-
简单健壮方案(推荐):
用 chardet 库自动检测(需pip install chardet):import chardet<br>with open(file, "rb") as f:<br> raw = f.read()<br> encoding = chardet.detect(raw)["encoding"] or "utf-8"<br> text = raw.decode(encoding)
登录后复制
-
轻量替代(无第三方依赖):逐个尝试常见编码:
encodings = ["utf-8", "gbk", "latin-1"]<br>for enc in encodings:<br> try:<br> with open(file, encoding=enc) as f:<br> text = f.read()<br> break<br> except UnicodeDecodeError:<br> continue
登录后复制
按规则修改内容并保存(原地 or 新目录)
处理逻辑写清楚,保存时注意区分“覆盖原文件”和“输出到新位置”。强烈建议默认输出到 output/ 子目录,避免误删原始数据。
标签: excel python js json 编码 app csv ai 数据清洗
还木有评论哦,快来抢沙发吧~