Python办公自动化:3分钟搞定Word文档批量转TXT(附完整代码)
你是否也曾被堆积如山的Word文档搞得焦头烂额?市场部的季度报告、人事部的员工档案、技术部的设计文档……当领导要求你“把这些Word里的文字都提取出来,整理成纯文本文件”时,手动一个个打开、复制、粘贴、保存,不仅耗时费力,还极易出错。这种重复性、机械性的文档格式转换工作,正是办公自动化的绝佳切入点。
今天,我们不谈复杂的文档结构解析,也不讲深奥的编程原理,就聚焦一个最直接、最高频的痛点:如何用Python一键将成百上千个Word文档,快速、准确地批量转换为TXT纯文本文件。无论你是行政文员、数据分析师,还是内容运营,掌握这项技能,意味着你能从繁琐的文档处理中彻底解放出来,把时间留给更有创造性的工作。接下来,我将以一个实战项目为核心,手把手带你搭建一个属于自己的“文档转换流水线”,整个过程清晰、直接,核心代码甚至短到让你惊讶。
1. 环境准备与核心工具选择
在开始编写“流水线”之前,我们需要准备好“施工场地”和“工具”。对于Python处理Word文档,市面上有几个主流库,各有侧重。为了达到“极简、高效、一键转换”的目标,我们需要做出明智的选择。
python-docx 是社区中最知名的库之一,功能强大,擅长创建和修改.docx文件。但对于我们“批量读取文本”这个单一任务,它显得有些“重”,且在处理旧版.doc格式时可能需要额外转换。
win32com 通过调用本地的Microsoft Word应用程序来实现操作,功能最全,但严重依赖Windows系统和已安装的Office软件,跨平台性差,且运行速度受Word启动影响。
Spire.Doc for Python 是一个商业库的免费版本,它支持.doc和.docx等多种格式的读写,API相对简洁。不过,其免费版在功能上有一定限制。
为了追求极致的简单和通用性,我推荐使用 docx2txt 和 antiword(针对.doc)的组合,或者更全能一些的 textract 库。但经过大量实践,我发现一个更优雅的方案:使用 python-docx 进行核心文本提取,并用系统命令调用 pandoc 作为备选方案。pandoc 被誉为“文档转换的瑞士军刀”,支持格式极其广泛,转换质量很高。
我们的环境配置将分为两步走:
- 安装Python基础库:我们主要使用
python-docx来处理.docx文件。 - 准备备选转换器(可选但推荐):安装
pandoc以应对更复杂的格式或作为后备方案。
首先,打开你的终端(命令提示符或PowerShell),创建并激活一个虚拟环境是个好习惯,可以避免包版本冲突:
# 创建虚拟环境(以项目文件夹为例)
python -m venv doc_converter_env
# 激活虚拟环境
# Windows:
doc_converter_env\Scripts\activate
# macOS/Linux:
source doc_converter_env/bin/activate
激活后,命令行前缀会显示环境名。接着安装核心库:
pip install python-docx
对于 pandoc,你需要从其官网下载并安装对应操作系统的版本。安装完成后,在命令行输入 pandoc --version 能显示信息即表示成功。Python中我们通过 subprocess 模块来调用它,无需额外安装Python包。
提示:如果你的文档全是
.docx格式,那么只安装python-docx就足够了。引入pandoc是为了增加方案的鲁棒性,处理一些python-docx可能解析不佳的复杂格式或古老的.doc文件。
2. 核心代码:构建极简转换函数
工具就位,现在我们来打造核心的转换引擎。思路很简单:写一个函数,它接收一个Word文档的路径,吐出一个包含其所有文本的字符串。我们再写另一个函数,负责遍历文件夹,把每个Word文档喂给第一个函数,并将结果保存为同名的.txt文件。
我们先来看最核心的 .docx 文件文本提取函数。python-docx 将文档抽象为 Document 对象,文档由段落(Paragraph)组成,我们只需遍历所

&spm=1001.2101.3001.5002&articleId=152503796&d=1&t=3&u=e1d06d12ef9645c587e2e822c6c17520)

被折叠的 条评论
为什么被折叠?



