Python实现文本处理中批量文件处理的详细教程【教程】

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

Python实现文本处理中批量文件处理的详细教程【教程】-第1张图片-佛山资讯网

批量处理文本文件在日常数据清洗、日志分析、文档整理中非常常见。用 Python 实现,核心是结合 osglobpathlib 遍历文件,再用 opencodecs 读写,配合 recsvpandas 等做内容处理。关键不是“一次写完所有功能”,而是分步构建可复用、易调试的流程。

快速定位目标文件(支持通配与递归)

别硬写 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 数据清洗

发布评论 0条评论)

还木有评论哦,快来抢沙发吧~