python读取word图片_python 如何提取 word 内的图片
方法一:解压.docx 文件提取图片
前言
.docx 文件其实也就是一个压缩文件,当我们将一个.docx 文件直接解压后可以看到如下目录
其中我们要找的图片就在 word/media 目录内,如图
所以,要提取 word 内的图片就需要将.docx 文件解压,再从 media 文件内取得图片,然后将解压后的文件删除
代码
import os
import shutil
import zipfile
def 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 os
def get_pictures(word_path, result_path):
"""
提取word文档内的图片
:param word_path: word文件
:param result_path: 结果目录
:return:
"""
doc = docx.Document(word_path)
dict_rel = doc.part._rels
for 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)
python读取word图片_python 如何提取 word 内的图片相关推荐
- python替换word中的图片_python如何提取word内的图片
解压.docx文件实现提取图片 前言 .docx文件其实也就是一个压缩文件,当我们将一个.docx文件直接解压后可以看到如下目录 其中我们要找的图片就在word/media目录内,如图 所以,要提取w ...
- python提取word目录_python批量提取word内信息
单位收集了很多word格式的调查表,领导需要收集表单里的信息,我就把所有调查表放一个文件里,写了个python小程序把所需的信息打印出来 #coding:utf-8 import os import ...
- python 读取邮件内容_Python 如何提取邮件内容
欢迎关注[无量测试之道]公众号,回复[领取资源], Python编程学习资源干货. Python+Appium框架APP的UI自动化. Python+Selenium框架Web的UI自动化. Pyth ...
- 工具:通过Python fitz 提取PDF内的图片
通过Python fitz 提取PDF内的图片 # 打开pdf读取文本和图片内容 # pip install PyMuPDFimport fitzpdf_document = "1.pdf& ...
- poi word操作之向单元格内添加图片
poi word操作之向单元格内添加图片 1,主要难点: poi word操作之向单元格内添加图片考虑的点: 1)考虑图片在单元格内的占比(动态的调整图片在文档中的宽高) 2,解决步骤 1)首先需要获 ...
- windows10图片打开找不到内置图片查看器
windows10图片打开找不到内置图片查看器 第一种解决方法: 找到windows设置按钮–>应用–>默认应用–>重置 如果上面的方法无效,尝试第二种方法,修改注册表,亲测有用 第 ...
- python 给word添加背景图片_Python如何使用word文档插入图片和表格
Python如何使用word文档插入图片和表格 发布时间:2020-10-26 13:49:29 来源:亿速云 阅读:101 作者:挣扎的蓝藻 这篇文章运用简单易懂的例子给大家介绍Python如何使用 ...
- 怎么用python读取excel图_Python如何读取excel中的图片
学会用Python提取word图片的小伙伴,今天又来学提取excel图片的方法啦.本期文章将通过python的包来提取,对比以往的代码更加简洁方便. 环境准备: python3 pillowpip i ...
- python读取pdf表格_Python使用Tabula提取PDF表格数据
今天遇到一个批量读取pdf文件中表格数据的需求,样式大体是以下这样: python读取PDF无非就是三种方式(我所了解的),pdfminer.pdf2htmlEX 和 Tabula.综合考虑后,选择了 ...
最新文章
- 初学Java——选择
- SAP ECC 6.0 ,R3 windows server 2003 安装分享 自学教程
- 解决Windows 10下Wireshark运行问题
- GDCM:扫描包含DICOM文件的目录的测试程序
- Scala _05集合_数组(一)
- [转]【无私分享:ASP.NET CORE 项目实战(第十四章)】图形验证码的实现
- [vue] vue怎么改变插入模板的分隔符?
- 精准高效估计多人3D姿态,美图北航分布感知式单阶段模型(CVPR 2022)
- 鸿蒙os来了,华为操作系统“鸿蒙OS”来了!
- 液压支架销轴力学计算分析研究_技术 | 篦冷机液压管路问题分析及改造措施
- Java创建Timestamp的几种方式
- 设计模式之——单例模式(Singleton)的常见应用场景(转):
- linux下查找进程及终止进程操作的相关命令
- Web API 路由 [二] Attribute Routing
- 人脸识别用照片可以识别吗?当然不能!
- 数据结构c语言版算法设计题,数据结构题集(C语言版)算法设计答案
- 计算机硬盘突然只有一个c盘,win10硬盘消失了只剩下c盘怎么恢复_win10硬盘突然消失只有c盘解决方法-win7之家...
- Redis的持久化方式
- 买域名+配置SSL站点
- AB测试(Test)——原理与实际案例手把手教学
热门文章
- 四大门户免费企业邮箱用户端基础参数对比
- neat download manager是什么?多线程下载工具 NeatDownloadManager
- 【Git】团队协作(终于学会了)
- 记录:数据分析在业务中的一些应用
- JavaScript实现阿拉伯数字转中文数字
- 手机ZTE中兴U802 U807手机解锁图案忘了 如何处理
- JAVA 映射HashMap和HashTable的区别和实用
- Failed at the react-admin_client@0.1.0 start script、react-app-rewired : command not found
- 奇迹按键精灵挂机脚本_按键精灵做连击脚本(奇迹MU战士用)
- 宝塔wordpress安装及使用(宝塔wordpress建站教程)