新闻中心
Python实现文本处理中批量文件处理的详细教程【教程】
批量处理文本文件应分步构建可复用流程:优先用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/ 子目录,避免误删原始数据。
Websphere教程 中文WORD版
本文档是Websphere教程;WebSphere 是因特网的基础架构软件,也就是我们所说的中间件。它使企业能够开发、部署和集成新一代电子商务应用(如 B2B 的电子交易),并且支持从简单的 Web 发布到企业级事务处理的商务应用。希望本文档会给有需要的朋友带来帮助;感兴趣的朋友可以过来看看
0
查看详情
-
示例:把所有文件里的多个空格替换成单个空格,并删除行首尾空白:
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_s*e(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()、s*e_to_output()),后续改需求或加新格式(比如支持 Excel 或 JSONL)就非常顺手。
以上就是Python实现文本处理中批量文件处理的详细教程【教程】的详细内容,更多请关注其它相关文章!
# python
# 多个
# 进度条
# 的是
# 复用
# 中非
# 文档
# 遍历
# 面向对象
# 文本文件
# 数据清洗
# ai
# csv
# app
# 编码
# json
# js
# excel
# 递归
# 德阳集团网站建设
# 常州营销推广怎么投
# 营销推广软件大全
# 彩信营销推广怎么用
# 阜南网站建设
# 网站优化用户体验度不够
# 常州网站营销与推广
# 成都网站建设公司的
# 无锡网站建设哪家更好
# SEO联盟头像女搞怪
相关栏目:
【
科技资讯46185 】
【
网络学院92790 】
相关推荐:
Excel组合图表怎么做 Excel创建柱状图与折线组合图教程【图表】
C++ typeid如何获取类型信息_C++ RTTI运行时类型识别用法
ArrayList与LinkedList操作复杂度详解:遍历与修改
处理动态列数据:J*a ArrayList的正确初始化与字符累加教程
Go与Ruby之间实现AES加密互通:CFB模式下的密钥长度匹配策略
处理嵌套交互式控件:前端可访问性指南
解决深度学习模型训练初期异常高损失与完美验证准确率问题
Lar*el如何正确地在控制器和模型之间分配逻辑_Lar*el代码职责分离与架构建议
UC浏览器网页版登录入口官网 电脑版网址入口
将HTML Canvas内容转换为可上传的图像文件(File对象)
J*aScript数组对象转换:按指定键分组与值收集
Linux如何构建多环境配置管理_Linux多环境配置方案
wps文字怎么插入目录并自动更新_wps文字如何插入目录并自动更新方法
J*a TimerTask文件监控:HashMap状态管理与常见陷阱规避指南
在J*a中如何使用Stream.map转换元素_Stream映射操作解析
微信网页版官方入口教程 微信网页版网页版快速登录步骤
《GTA6》开发画面疑似泄露!这次可不是AI了
微信客户端如何收红包_微信客户端接收红包使用教程
C++如何进行游戏物理模拟_使用Box2D库为C++游戏添加2D物理效果
海量存储:机器视觉智能化的核心基石
使用CSS更改登录屏幕输入框中PNG图标颜色的策略与局限性
谷歌浏览器一键优化方案_谷歌浏览器直达主页极速不卡版
2306选座时如何选靠窗位置_12306选座靠窗座位查看方法解析
抖音极速版最新版本 抖音极速版官方下载地址
Windows7怎么硬盘安装 Windows7提取ISO镜像到非系统盘并运行setup.exe实现硬盘直装【教程】
J*aScript设计模式实践_j*ascript代码优化
怎么在html里运行vbs脚本_html中运行vbs脚本方法【教程】
淘宝支付提示失败如何解决 淘宝支付流程优化方法
从J*aScript对象中精确提取指定属性的教程
CSS Flexbox与媒体查询:实现响应式布局中元素的并排与堆叠
印象笔记怎样用批量导出备知识库_印象笔记用批量导出备知识库【备份方法】
Lar*el用户头像管理:实现图片缩放、存储与旧文件安全删除的最佳实践
腾讯视频怎么使用多账号家庭管理_腾讯视频家庭多账号统一管理与权限分配教程
如何创建独立于主系统的J*a运行环境_隔离式环境搭建策略
怎么在mac上运行html代码_mac运行html代码方法【指南】
微信怎么把收藏的内容分类管理 微信收藏内容标签分类方法
解决Python logging 中 datefmt 导致时间戳固定不变的问题
在FastAPI中利用lifespan与依赖注入高效管理Redis连接池
Win10如何清理注册表垃圾 Win10手动清理无效注册表【技巧】
2026春节假期票务安排_2026春节放假购票指南
Django AJAX 文件上传教程:解决图片无法保存到模型的常见问题
知乎APP怎么管理已购盐选内容_知乎APP盐选内容购买记录与查看方法
在J*a中如何开发简易电子商务商品管理系统_商品管理系统项目实战解析
Angular中父组件异步更新子组件复选框状态的实践指南
微信群消息显示延迟如何解决 微信群消息刷新优化方法
铁路12306改签能改到更早的车次吗_铁路12306改签提前车次规则
2025AO3夸克浏览器通道_AO3手机HTTPS安全入口分享
高德地图公交到站提醒失败如何解决 高德提醒权限设置
深入理解J*aScript中的B样条曲线与节点向量生成
C++指针和引用有什么区别_C++内存管理核心概念深度解析


2025-12-15
浏览次数:次
返回列表