方法一:解压.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 内的图片相关推荐

  1. python替换word中的图片_python如何提取word内的图片

    解压.docx文件实现提取图片 前言 .docx文件其实也就是一个压缩文件,当我们将一个.docx文件直接解压后可以看到如下目录 其中我们要找的图片就在word/media目录内,如图 所以,要提取w ...

  2. python读取word图片_python 如何提取 word 内的图片

    方法一:解压.docx 文件提取图片 前言 .docx 文件其实也就是一个压缩文件,当我们将一个.docx 文件直接解压后可以看到如下目录 其中我们要找的图片就在 word/media 目录内,如图 ...

  3. 工具:通过Python fitz 提取PDF内的图片

    通过Python fitz 提取PDF内的图片 # 打开pdf读取文本和图片内容 # pip install PyMuPDFimport fitzpdf_document = "1.pdf& ...

  4. 批量提取Word中的图片

    我在写学习笔记的时候喜欢用word或Evernote直接排版做笔记,好处是快速方便,直接截图插入.但是再刊载在CSND上的时候就有麻烦了,因为不能直接粘贴图片,只能上传到相册中再选取.这时我又不愿意一 ...

  5. pandoc提取word中的图片

    pandoc提取word中的图片 pandoc -i xxx.docx -o xxx.tex --extract-media=pathName 会将word中的图片提取到 pathName下的medi ...

  6. 办公室小姐姐的福利!用Python批量提取word文档中的表格和图片内容

    点上方"菜鸟学Python",选择"星标" 第491篇原创干货,第一时间送达 最近有许多小伙伴想要一些自动化办公的福利小程序,今天就满足大家的需求.日常的办公过 ...

  7. Python 批量提取Excel中的图片,图片文件名按指定列存储

    openpyxl 以及 openpyxl_image_loader,conda或者pip无法安装的话,官网下载whl,然后pip安装本地包 [注意]:图片必须在单元格内,不能压过单元格边界 from ...

  8. python批量提取word指定内容_使用python批量读取word文档并整理关键信息到excel表格的实例...

    目标 最近实验室里成立了一个计算机兴趣小组 倡议大家多把自己解决问题的经验记录并分享 就像在CSDN写博客一样 虽然刚刚起步 但考虑到后面此类经验记录的资料会越来越多 所以一开始就要做好模板设计(如下 ...

  9. java中怎样导入图片6_Spire.Doc系列教程(6):插入图片到 Word 以及提取 Word 中的图片...

    图片是Word文档的基本要素之一,常见的对Word图片的操作有插入.删除.替换和提取.本文将介绍如何使通过编程的方式添加图片到指定位置,以及如何获取Word文档中的图片并保存到本地路径. 在指定位置插 ...

最新文章

  1. oracle 根据spid查sql,探讨:Oracle数据库查看一个进程是如何执行相关的实际SQL语句...
  2. 单继承-问题的抛出-单纯封装可能会出现重复的代码
  3. 唯品会2017年双11大促技术保障实践,全域提供25万QPS服务能力
  4. k8s pod里访问不到外部ip_K8S容器网络如何实现通信?
  5. Type mismatch: cannot convert from int to Object错误
  6. install maven3 on ubuntu
  7. Atitit.每周计划日程表 流程表v3
  8. 影响腾讯 20 年的产品方法论
  9. Openlaye:学习笔记之事件
  10. Java开发笔记(一百三十四)Swing的基本对话框
  11. SSO 自动登录 跨站点 解决方案。
  12. C++实现改变网速*SpeedDuplex和网速监控
  13. 通知 Notification的介绍,以及自定义通知
  14. 三个基本的布尔逻辑算符是_布尔逻辑运算符有几种,定义和功能分别是什么
  15. 计算机毕业设计之java+ssm学生网上请假系统
  16. 中国故事 张亚勤 访谈
  17. 出租车GPS数据分析的常规方法
  18. ABP官方文档(十三)【对象之间的映射】
  19. 富士康计算机笔试题目,富士康师级干部面试测试题
  20. lol中国人最多的服务器,2021LOL哪个区人多_2021LOL服务器推荐

热门文章

  1. Android系统版本在6.0+以上需要动态申请权限
  2. 你必须知道的家庭急救常识
  3. 超分辨率的国内外研究现状
  4. 微信小程序实现身份证识别功能
  5. C语言读写BMP图片(附Github下载链接和视频讲解地址)
  6. 关于tink的碰撞检测类【2】
  7. 制造业大量招程序员,是拧螺丝吗?
  8. 网页AB Testing的七个原则(半成品)
  9. MinIO入门-02 SpringBoot 整合MinIO并实现文件上传
  10. 小王梦游记五---最美丽的湖