Python 批量合并 TXT 文本并导出 Excel 的实用脚本解析
在日常的数据处理和内容管理工作中,经常会遇到这样的场景:我们有大量以 TXT 文件保存的文章或采集数据,这些文件结构相似,包含标题、正文、关键词、描述等字段。如果逐个手工复制粘贴到 Excel 中,效率极低,而且容易出错。

Python批量合并TXT文本并导出Excel
本文将介绍一个基于 Python + Pandas 的自动化脚本,它能够批量读取指定目录下的 TXT 文件,提取其中的结构化信息,并一键导出为 Excel 表格,极大提高了数据整理效率。
功能概述
- 批量读取 TXT 文件:支持遍历整个文件夹,只处理 .txt 文件。
- 智能匹配字段:通过正则表达式匹配不同的“标题行”,自动识别出“标题、文章内容、文章标题、文章关键字、文章描述、文章地址”。
- 容错性强:兼容 UTF-8、UTF-8-SIG、GB18030 等常见编码方式,避免乱码问题。
- 可选提取模式:支持提取“标题行后的第一条非空行”或“完整内容”,用户可通过
ONLY_FIRST_LINE
开关灵活设置。 - 统一导出 Excel:最终生成一个
合并结果.xlsx
文件,结构化保存所有 TXT 文件内容,方便后续编辑、分析和存档。
核心代码解析
1. 正则匹配标题行
脚本使用正则表达式对标题行进行智能识别,支持多种同义词和中英文标注:
header_patterns = {
"标题": re.compile(r'^\s*标题\s*[::]?\s*$'),
"文章内容": re.compile(r'^\s*(文章内容|内容|正文)\s*[::]?\s*$', re.I),
"文章标题": re.compile(r'^\s*(文章标题|SEO标题|页面标题)\s*[::]?\s*$', re.I),
"文章关键字": re.compile(r'^\s*(文章关键字|关键词|关键字|keywords?)\s*[::]?\s*$', re.I),
"文章描述": re.compile(r'^\s*(文章描述|描述|description)\s*[::]?\s*$', re.I),
"文章地址": re.compile(r'^\s*(文章地址|地址|url|链接)\s*[::]?\s*$', re.I),
}
2. 多编码自动适配
为了避免读取 TXT 文件时出现乱码,脚本尝试了三种常见编码:
for enc in ("utf-8-sig","utf-8","gb18030"):
try:
with open(path, "r", encoding=enc) as f:
return f.read()
except UnicodeDecodeError:
continue
3. 灵活的提取逻辑
脚本支持两种提取模式,由 ONLY_FIRST_LINE
控制:
if ONLY_FIRST_LINE:
value = next((b for b in buf if b), "")
else:
value = "\n".join([b for b in buf if b]).strip()
4. Excel 输出
最终结果会以 Pandas DataFrame 的形式保存,并导出为 Excel 文件:
df = pd.DataFrame(rows, columns=[
"TXT文件名","标题","文章内容","文章标题","文章关键字","文章描述","文章地址"
])
out_xlsx = os.path.join(folder, "合并结果.xlsx")
df.to_excel(out_xlsx, index=False)
应用场景
- SEO 内容整理:从采集工具导出的 TXT 批量汇总,统一生成 Excel,方便二次编辑和导入 CMS。
- 数据归档:对历史文档、笔记、报告等进行格式化存档,便于查询和统计。
- 批量处理:在数据清洗、关键词提取、内容审核等任务中,快速将分散的文本转化为结构化数据。
我自己的PY合并代码
此内容仅对已评论用户可见,请先评论后查看。
总结
本文介绍的 Python 脚本,将繁琐的手工整理 TXT 文件的工作完全自动化,不仅节省时间,还避免了人工操作带来的错误。通过正则匹配、编码兼容和灵活提取模式,它能够适应各种不同格式的 TXT 文件,最终导出整洁的 Excel 文件,助力内容管理和数据分析。
如果你正在使用火车采集器、SEO 工具,或者日常工作中需要批量整理 TXT 文件,不妨试试这个脚本,相信它会成为你的高效助手。
© 原创声明:本文由 四六啦工具 于 2 天 前发表在 代码笔记 分类目录中,最后更新于2025年9月2日,转载请注明本文永久链接:https://www.46.la/python-txt-to-excel
相关文章
本文暂时没有评论,来添加一个吧(●'◡'●)