0

0

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

冰川箭仙

冰川箭仙

发布时间:2025-12-15 19:34:02

|

964人浏览过

|

来源于php中文网

原创

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

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

批量处理文本文件在日常数据清洗、日志分析、文档整理中非常常见。用 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/ 子目录,避免误删原始数据。

Khroma
Khroma

AI调色盘生成工具

下载

立即学习Python免费学习笔记(深入)”;

  • 示例:把所有文件里的多个空格替换成单个空格,并删除行首尾空白:
    import re<br>for file in files:<br>  # 读取<br>  text = read_text_safely(file) # 上一步封装好的函数<br>  # 处理<br>  text = re.sub(r" +", " ", text)<br>  text = "\n".join(line.strip() for line in text.splitlines())<br>  # 保存到 output 目录(自动创建)<br>  out_path = Path("output") / file.name<br>  out_path.parent.mkdir(exist_ok=True)<br>  out_path.write_text(text, encoding="utf-8")
  • 如需保留原文件名结构(含子目录),用 file.relative_to(root) 构造输出路径:
    root = Path(".")<br>out_path = Path("output") / file.relative_to(root)

加进度提示与错误隔离,让脚本更可靠

几百个文件跑一半报错就中断?加 try/except 捕获单个文件异常,并记录日志;用 tqdm 显示进度条(pip install tqdm)提升体验。

  • 带错误跳过的循环:
    from tqdm import tqdm<br>success, failed = 0, []<br>for file in tqdm(files, desc="Processing"):<br>  try:<br>    process_and_save(file)<br>    success += 1<br>  except Exception as e:<br>    failed.append((str(file), str(e)))<br>print(f"完成 {success}/{len(files)},失败 {len(failed)} 个")
  • 把失败列表写入 report.txt 方便复查:
    if failed:<br>  with open("report.txt", "w", encoding="utf-8") as f:<br>    for path, err in failed:<br>      f.write(f"{path}\t{err}\n")

基本上就这些。不复杂但容易忽略细节:编码容错、路径安全、错误隔离、输出分离。把每步拆成小函数(如 read_text_safely()clean_text()save_to_output()),后续改需求或加新格式(比如支持 Excel 或 JSONL)就非常顺手。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

WorkBuddy
WorkBuddy

腾讯云推出的AI原生桌面智能体工作台

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
Python 时间序列分析与预测
Python 时间序列分析与预测

本专题专注讲解 Python 在时间序列数据处理与预测建模中的实战技巧,涵盖时间索引处理、周期性与趋势分解、平稳性检测、ARIMA/SARIMA 模型构建、预测误差评估,以及基于实际业务场景的时间序列项目实操,帮助学习者掌握从数据预处理到模型预测的完整时序分析能力。

81

2025.12.04

Python 数据清洗与预处理实战
Python 数据清洗与预处理实战

本专题系统讲解 Python 在数据清洗与预处理中的核心技术,包括使用 Pandas 进行缺失值处理、异常值检测、数据格式化、特征工程与数据转换,结合 NumPy 高效处理大规模数据。通过实战案例,帮助学习者掌握 如何处理混乱、不完整数据,为后续数据分析与机器学习模型训练打下坚实基础。

34

2026.01.31

pip安装使用方法
pip安装使用方法

安装步骤:1、确保Python已经正确安装在您的计算机上;2、下载“get-pip.py”脚本;3、按下Win + R键,然后输入cmd并按下Enter键来打开命令行窗口;4、在命令行窗口中,使用cd命令切换到“get-pip.py”所在的目录;5、执行安装命令;6、验证安装结果即可。大家可以访问本专题下的文章,了解pip安装使用方法的更多内容。

373

2023.10.09

更新pip版本
更新pip版本

更新pip版本方法有使用pip自身更新、使用操作系统自带的包管理工具、使用python包管理工具、手动安装最新版本。想了解更多相关的内容,请阅读专题下面的文章。

437

2024.12.20

pip设置清华源
pip设置清华源

设置方法:1、打开终端或命令提示符窗口;2、运行“touch ~/.pip/pip.conf”命令创建一个名为pip的配置文件;3、打开pip.conf文件,然后添加“[global];index-url = https://pypi.tuna.tsinghua.edu.cn/simple”内容,这将把pip的镜像源设置为清华大学的镜像源;4、保存并关闭文件即可。

803

2024.12.23

python升级pip
python升级pip

本专题整合了python升级pip相关教程,阅读下面的文章了解更多详细内容。

371

2025.07.23

python中print函数的用法
python中print函数的用法

python中print函数的语法是“print(value1, value2, ..., sep=' ', end=' ', file=sys.stdout, flush=False)”。本专题为大家提供print相关的文章、下载、课程内容,供大家免费下载体验。

193

2023.09.27

python print用法与作用
python print用法与作用

本专题整合了python print的用法、作用、函数功能相关内容,阅读专题下面的文章了解更多详细教程。

19

2026.02.03

TypeScript类型系统进阶与大型前端项目实践
TypeScript类型系统进阶与大型前端项目实践

本专题围绕 TypeScript 在大型前端项目中的应用展开,深入讲解类型系统设计与工程化开发方法。内容包括泛型与高级类型、类型推断机制、声明文件编写、模块化结构设计以及代码规范管理。通过真实项目案例分析,帮助开发者构建类型安全、结构清晰、易维护的前端工程体系,提高团队协作效率与代码质量。

49

2026.03.13

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Excel 教程
Excel 教程

共162课时 | 21.4万人学习

成为PHP架构师-自制PHP框架
成为PHP架构师-自制PHP框架

共28课时 | 2.6万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号