Python 提取 Word 文档中的文本和图片
将内容从 Word 文档中提取出来可以方便我们对其进行其他操作,如将内容储存在数据库中、将内容导入到其他程序中、用于 AI 训练以及制作其他文档等。第三方库 Spire.Doc for Python 提供了一个简单的方法直接提取 Word 文档中的内容,包括文本和图片,而不需要大量的复制粘贴操作,也不需要复杂的代码。本文将介绍如何使用简单的代码实现从 Word 文档中提取文本和图片内容并保存。
- 从 Word 文档中提取文本内容并写入 TXT 文件
- 从 Word 文档中提取图片并保存
Python库安装: 在操作之前,需要先将Spire.Doc for Python 引入到项目中。可以下载后安装,或直接通过 pip 安装。
pip install Spire.Doc
Python 提取Word文档中的文本内容
Spire.Doc for Python中的 Document.GetText() 方法可以获取Word文档中的所有文本并返回字符串,我们可以将返回的字符串写入到文本文件中进行保存。
代码示例:
from turtle import st
from spire.doc import *
from spire.doc.common import * def WriteAllText(fname:str,text:List[str]):
fp = open(fname,"w")
for s in text:
fp.write(s)
fp.close() inputFile = "示例.docx"
outputFile = "获取的文本.txt" #创建Document的对象
document = Document() #载入Word文档
document.LoadFromFile(inputFile) #获取文档中的文本
text = document.GetText() #将文本写入文本文件
WriteAllText(outputFile, text)
document.Close()
提取结果

Python 提取Word文档中的图片
提取图片的操作相对复杂一些,需要判断文档元素子对象是否为图片或复合对象,如果是图片则保存,如果是复合对象则继续判断其中的子对象是否为图片。
代码示例:
import queue
from spire.doc import *
from spire.doc.common import *
import os outputPath = "Images/"
inputFile = "示例.docx" if not os.path.exists(outputPath):
os.makedirs(outputPath) #创建Document的对象
document = Document() #载入Word文档
document.LoadFromFile(inputFile) #创建一个队列并将文档元素放入其中
nodes = queue.Queue()
nodes.put(document) #创建一个列表
images = [] #循环遍历文档元素
while nodes.qsize() > 0:
node = nodes.get()
for i in range(node.ChildObjects.Count):
#获取文档元素的子对象
child = node.ChildObjects.get_Item(i)
#判断子对象是否为图片
if child.DocumentObjectType == DocumentObjectType.Picture:
picture = child if isinstance(child, DocPicture) else None
dataBytes = picture.ImageBytes
#添加到列表中
images.append(dataBytes)
#判断子对象是否为复合对象
elif isinstance(child, ICompositeObject):
#添加到队列中
nodes.put(child if isinstance(child, ICompositeObject) else None) #保存图片
for i, item in enumerate(images):
fileName = "Image-{}.png".format(i)
with open(outputPath+fileName,'wb') as imageFile:
imageFile.write(item)
document.Close()
提取结果:

以上是关于如何使用Python 从Word文档中提取文本和图片的介绍。该Python Word库还支持非常多的文档操作,具体可以查看 Spire.Doc for Python中文教程。
Python 提取 Word 文档中的文本和图片的更多相关文章
- C# 提取Word文档中的图片
C# 提取Word文档中的图片 图片和文字是word文档中两种最常见的对象,在微软word中,如果我们想要提取出一个文档内的图片,只需要右击图片选择另存为然后命名保存就可以了,今天这篇文章主要是实现使 ...
- 使用Java POI来选择提取Word文档中的表格信息
通过使用Java POI来提取Word(1992)文档中的表格信息,其中POI支持不同的ms文档类型,在具体操作中需要注意.本文主要是通过POI来提取微软2003文档中的表格信息,具体code如下(事 ...
- 2018-10-04 [日常]用Python读取word文档中的表格并比较
最近想对某些word文档(docx)的表格内容作比较, 于是找了一下相关工具. 参考Automate the Boring Stuff with Python中的word部分, 试用了python-d ...
- 第一节:python提取PDF文档中的图片
由于项目需要将PDF文档当中的图片转换成图片,所以参考了这篇文章https://blog.csdn.net/qq_15969343/article/details/81673302后项目得以解决. 1 ...
- Aspose.Words提取word文档中的图片文件
/// <summary> /// 提取word中的图片 /// </summary> /// <param name="filePath">w ...
- Python读取word文档(python-docx包)
最近想统计word文档中的一些信息,人工统计的话...三天三夜吧 python 不愧是万能语言,发现有一个包叫做 docx,非常好用,具体查看官方文档:https://python-docx.read ...
- C# Word文档中插入、提取图片,文字替换图片
Download Files:ImageOperationsInWord.zip 简介 在这篇文章中我们可以学到在C#程序中使用一个Word文档对图像的各种操作.图像会比阅读文字更有吸引力,而且图像是 ...
- Java 在 Word 文档中使用新文本替换指定文本
创作一份文案,经常会高频率地使用某些词汇,如地名.人名.人物职位等,若表述有误,就需要整体撤换.文本将介绍如何使用Spire.Doc for Java,在Java程序中对Word文档中的指定文本进行替 ...
- 利用Python-docx 读写 Word 文档中的正文、表格、段落、字体等
前言: 前两篇博客介绍了 Python 的 docx 模块对 Word 文档的写操作,这篇博客将介绍如何用 docx 模块读取已有 Word 文档中的信息. 本篇博客主要内容有: 1.获取文档的章节信 ...
- C# 在Word文档中生成条形码
C# 在Word文档中生成条形码 简介 条形码是由多个不同的空白和黑条按照一定的顺序组成,用于表示各种信息如产品名称.制造商.类别.价格等.目前,条形码在我们的日常生活中有着很广泛的应用,不管是在图书 ...
随机推荐
- DHorse v1.3.2 发布,基于 k8s 的发布平台
版本说明 新增特性 构建版本.部署应用时的线程池可配置化: 优化特性 构建版本跳过单元测试: 解决问题 解决Vue应用详情页面报错的问题: 解决Linux环境下脚本运行失败的问题: 解决下载Maven ...
- Web服务器部署上线的踩坑流程回顾与知新
5月份时曾部署上线了C++的Web服务器,温故而知新,本篇文章梳理总结一下部署流程知识: 最初的解决方案:https://blog.csdn.net/BinBinCome/article/detail ...
- 【题解】AtCoder Beginner Contest 318(D - Ex)
赛时过了 A-G,Ex 仿佛猜到了结论但是完全不懂多项式科技,就炸了. 大家好像都秒了 A,B,C 就不写了. D.General Weighted Max Matching 题目描述: 给你一个加权 ...
- js调起android安卓与ios苹果方法 vue3.0 + ts
let shareSelect = (ev :any) => { const u :any= navigator.userAgent; const win :any = window const ...
- .NET应用多语言-葡萄牙语软件,如何处理本地化,特别是数字的转换和计算
在葡萄牙语软件中,数字本地化通常涉及小数点和千位分隔符的使用.在葡萄牙语中,小数点用","表示,而不是英语中使用的".".千位分隔符通常是一个空格或一个点. 例 ...
- Python 网页爬虫原理及代理 IP 使用
一.Python 网页爬虫原理 Python 是一种高效的编程语言,在 Web 开发和数据分析领域广受欢迎.Python 的优秀模块使其更加适合大规模数据处理和 Web 服务的编程.网络爬虫是 Pyt ...
- python开发实战——ip池
前言代理IP池是一组可用的代理IP地址,用于访问网站或执行其他网络请求.它可以帮助我们在网络请求时隐藏我们的真实IP地址,从而提高网络安全性.匿名性和稳定性.同时,代理IP池还可以通过定时更新和测试代 ...
- win如何根据端口号查找并杀死一个线程
查看端口占用 netstat -ano | findstr "端口号" 杀死一个进程 taskkill /pid 进程号 -f
- java_方法使用细节
java_方法使用细节 1.一个方法想要返回多个值 思考?一个方法如何返回多个值 返回数组 class AA{ public int[] getSumAndSub(int n1, int n2){ / ...
- Python基础——CPU详解
一 五大组成单元=>三大核心组件 组成计算机五大单元可以合并成三大核心组件:CPU.IO设备.主存储器 1.控制单元+算数逻辑单元=>CPU 2.主存储器,即主記憶體 3.输入单元Inpu ...