Python Cookbook-2.27 从微软 Word 文档中抽取文本

embedded/2025/3/3 16:04:39/

任务

你想从 Windows 平台下某个目录树中的各个微软 Word 文件中抽取文本,并保存为对应的文本文件。

解决方案

借助 PyWin32 扩展,通过COM 机制,可以利用 Word 来完成转换:

python">word">import fnmatch,os,sys,win32com.client
wordapp = win32com.client.gencache.EnsureDispatch ("Word.Application")
word">try:word">for path,dirs,files word">in os.walk(sys.argv[1]):word">for filename word">in files:word">if word">not fnmatch.fnmatch(filename,'*.doc'):word">continuedoc = os.path.abspath(os.path,join(path,filename))word">print "processing %s" % docwordapp.Documents.Open(doc)docastxt = doc[:-3]+'txt'wordapp.ActiveDocument.SaveAs(docastxt,FileFormat=win32com.client.constants.wdFormatText)wordapp.ActiveDocument.Close()
word">finally:
#确保即使有异常发生word仍能被正常关闭
wordapp.Quit()

讨论

关于 Windows应用程序的一个有趣的地方是,可以通过COM以及Python 提供的PyWin32 扩展,编写一些简单的脚本对这些应用程序进行控制。这个扩展允许你用Python 脚本来完成各种 Windows 下的任务。本节的脚本,从目录树下的所有的 Word文档(即.doc 文件)中抽取文本,并存为对应的.txt文本文件。通过使用 os.walk 函数,并利用 for循环语句,我们无须递归即可遍历树中的所有子目录。通过 fnmatch.fnmatch函数,可以检查文件名以确认它是否符合我们给出的通配符,这里的通配符是“.doc”一旦我们确认了这是一个 Word 文档,我们就用此文件名和 os.path 来得到一个绝对路径,再用 Word 打开它,存为文本文件,然后关闭。

如果没有安装Word,可能需要完全不同的方法来达成目标。一种可能是使用OpenOMice.org,它也可以载入 Word 文档。另一种可能是使用可以读取 Word 文档的程序,比如 Antiword,其网址是 http://www,winfield.demon.nl/。但这里不准备探讨这两种方式。


http://www.ppmy.cn/embedded/169652.html

相关文章

深度学习-139-RAG技术之Agentic Chunking分块技术的工作原理及简单实现

文章目录 1 传统分块的问题2 Agentic Chunking的工作原理3 Agentic Chunking怎么实现3.1 Propositioning文本3.1.1 大语言模型3.1.2 官方提示词模板3.1.3 抽取链3.2 使用LLM Agent创建文本块3.2.1 创建新文本块3.2.2 将proposition添加到文本块3.2.3 将proposition推送到合适的…

Pytorch中的ebmedding到底怎么理解?

在 PyTorch 中,nn.Embedding 是一个用于处理离散符号映射到连续向量空间的模块。它通常用于自然语言处理(NLP)任务(如词嵌入)、处理分类特征,或任何需要将离散索引转换为密集向量的场景。 核心理解 功能&am…

计算机毕业设计Python+DeepSeek-R1大模型期货价格预测分析 期货价格数据分析可视化预测系 统 量化交易大数据 机器学习 深度学习

温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…

认知动力学视角下的生命优化系统:多模态机器学习框架的哲学重构

认知动力学视角下的生命优化系统:多模态机器学习框架的哲学重构 一、信息熵与生命系统的耗散结构 在热力学第二定律框架下,生命系统可视为负熵流的耗散结构: d S d i S d e S dS d_iS d_eS dSdi​Sde​S 其中 d i S d_iS di​S为内部熵…

next实现原理

Next.js 是一个基于 React 的 服务器端渲染(SSR) 和 静态生成(SSG) 框架,它的实现原理涉及多个关键技术点,包括 服务端渲染(SSR)、静态生成(SSG)、客户端渲染…

《Effective Objective-C》阅读笔记(下)

目录 内存管理 理解引用计数 引用计数工作原理 自动释放池 保留环 以ARC简化引用计数 使用ARC时必须遵循的方法命名规则 变量的内存管理语义 ARC如何清理实例变量 在dealloc方法中只释放引用并解除监听 编写“异常安全代码”时留意内存管理问题 以弱引用避免保留环 …

基于ArcGIS Pro、Python、USLE、INVEST模型等多技术融合的生态系统服务构建生态安全格局高阶应用

文字目录 前言第一章、生态安全评价理论及方法介绍一、生态安全评价简介二、生态服务能力简介三、生态安全格局构建研究方法简介 第二章、平台基础一、ArcGIS Pro介绍二、Python环境配置 第三章、数据获取与清洗一、数据获取:二、数据预处理(ArcGIS Pro及…

Chapter 4 Noise performance of elementary transistor stages

Chapter 4 Noise performance of elementary transistor stages 在介绍运放之前, 这一章介绍噪声 噪声是看RMS电压, 即Root-Mean-Square Voltage V R M S 1 T ∫ 0 T V ( t ) 2 d t V P 2 V_{RMS}\sqrt{\frac{1}{T}\int_{0}^{T}V(t)^2dt}\frac{V_P}{\sqrt{2}} VRMS​T1​∫…