python 如何提取 word 内的图片
方法一:解压.docx 文件提取图片
前言
.docx 文件其实也就是一个压缩文件,当我们将一个.docx 文件直接解压后可以看到如下目录
其中我们要找的图片就在 word/media 目录内,如图
所以,要提取 word 内的图片就需要将.docx 文件解压,再从 media 文件内取得图片,然后将解压后的文件删除
代码
import os
import shutil
import zipfiledef get_pictures(word_path, result_path):"""获取word内的所有图片:param word_path: word文件:param result_path: 结果目录,无需手动创建:return: None or generator,None:word内没有图片,generator:每个图片的路径"""tmp_path = f'{os.path.splitext(word_path)[0]}'# 拷贝源文件后重命名再解压splitext = os.path.splitext(word_path)zip_path = shutil.copy(word_path, f'{splitext[0]}_new{splitext[1]}')with zipfile.ZipFile(zip_path, 'r') as f:for file in f.namelist():f.extract(file, tmp_path)os.remove(zip_path)# 注:word图片在zip文件内的word/media目录下pic_path = os.path.join(tmp_path, 'word/media')if not os.path.exists(pic_path):shutil.rmtree(tmp_path)return 'no pictures found'pictures = os.listdir(pic_path)if not os.path.exists(result_path):os.makedirs(result_path)for picture in pictures:# 根据word的文件名生成图片的名称word_name = os.path.splitext(word_path)[0]if os.sep in word_name:new_name = word_name.split('\\')[-1]else:new_name = word_name.split('/')[-1]picture_name = f'{new_name}_{picture}'shutil.copy(os.path.join(pic_path, picture), os.path.join(result_path, picture_name))shutil.rmtree(tmp_path)return (os.path.join(result_path, pic) for pic in os.listdir(result_path))
方法二:利用三方库 docx 提取图片(推荐)
import docx
import osdef get_pictures(word_path, result_path):"""提取word文档内的图片:param word_path: word文件:param result_path: 结果目录:return:"""doc = docx.Document(word_path)dict_rel = doc.part._relsfor rel in dict_rel:rel = dict_rel[rel]if "image" in rel.target_ref:if not os.path.exists(result_path):os.makedirs(result_path)img_name = re.findall("/(.*)", rel.target_ref)[0]word_name = os.path.splitext(word_path)[0]# print(os.sep)if os.sep in word_name:new_name = word_name.split('\\')[-1]else:new_name = word_name.split('/')[-1]img_name = f'{new_name}_{img_name}'with open(f'{result_path}/{img_name}', "wb") as f:f.write(rel.target_part.blob)
更多RPA知识,请访问艺赛旗社区:https://support.i-search.com.cn/
python 如何提取 word 内的图片相关推荐
- python替换word中的图片_python如何提取word内的图片
解压.docx文件实现提取图片 前言 .docx文件其实也就是一个压缩文件,当我们将一个.docx文件直接解压后可以看到如下目录 其中我们要找的图片就在word/media目录内,如图 所以,要提取w ...
- python读取word图片_python 如何提取 word 内的图片
方法一:解压.docx 文件提取图片 前言 .docx 文件其实也就是一个压缩文件,当我们将一个.docx 文件直接解压后可以看到如下目录 其中我们要找的图片就在 word/media 目录内,如图 ...
- 工具:通过Python fitz 提取PDF内的图片
通过Python fitz 提取PDF内的图片 # 打开pdf读取文本和图片内容 # pip install PyMuPDFimport fitzpdf_document = "1.pdf& ...
- 批量提取Word中的图片
我在写学习笔记的时候喜欢用word或Evernote直接排版做笔记,好处是快速方便,直接截图插入.但是再刊载在CSND上的时候就有麻烦了,因为不能直接粘贴图片,只能上传到相册中再选取.这时我又不愿意一 ...
- pandoc提取word中的图片
pandoc提取word中的图片 pandoc -i xxx.docx -o xxx.tex --extract-media=pathName 会将word中的图片提取到 pathName下的medi ...
- 办公室小姐姐的福利!用Python批量提取word文档中的表格和图片内容
点上方"菜鸟学Python",选择"星标" 第491篇原创干货,第一时间送达 最近有许多小伙伴想要一些自动化办公的福利小程序,今天就满足大家的需求.日常的办公过 ...
- Python 批量提取Excel中的图片,图片文件名按指定列存储
openpyxl 以及 openpyxl_image_loader,conda或者pip无法安装的话,官网下载whl,然后pip安装本地包 [注意]:图片必须在单元格内,不能压过单元格边界 from ...
- python批量提取word指定内容_使用python批量读取word文档并整理关键信息到excel表格的实例...
目标 最近实验室里成立了一个计算机兴趣小组 倡议大家多把自己解决问题的经验记录并分享 就像在CSDN写博客一样 虽然刚刚起步 但考虑到后面此类经验记录的资料会越来越多 所以一开始就要做好模板设计(如下 ...
- java中怎样导入图片6_Spire.Doc系列教程(6):插入图片到 Word 以及提取 Word 中的图片...
图片是Word文档的基本要素之一,常见的对Word图片的操作有插入.删除.替换和提取.本文将介绍如何使通过编程的方式添加图片到指定位置,以及如何获取Word文档中的图片并保存到本地路径. 在指定位置插 ...
最新文章
- oracle 根据spid查sql,探讨:Oracle数据库查看一个进程是如何执行相关的实际SQL语句...
- 单继承-问题的抛出-单纯封装可能会出现重复的代码
- 唯品会2017年双11大促技术保障实践,全域提供25万QPS服务能力
- k8s pod里访问不到外部ip_K8S容器网络如何实现通信?
- Type mismatch: cannot convert from int to Object错误
- install maven3 on ubuntu
- Atitit.每周计划日程表 流程表v3
- 影响腾讯 20 年的产品方法论
- Openlaye:学习笔记之事件
- Java开发笔记(一百三十四)Swing的基本对话框
- SSO 自动登录 跨站点 解决方案。
- C++实现改变网速*SpeedDuplex和网速监控
- 通知 Notification的介绍,以及自定义通知
- 三个基本的布尔逻辑算符是_布尔逻辑运算符有几种,定义和功能分别是什么
- 计算机毕业设计之java+ssm学生网上请假系统
- 中国故事 张亚勤 访谈
- 出租车GPS数据分析的常规方法
- ABP官方文档(十三)【对象之间的映射】
- 富士康计算机笔试题目,富士康师级干部面试测试题
- lol中国人最多的服务器,2021LOL哪个区人多_2021LOL服务器推荐