Python提取Word中的所有图片
原理说明
.docx
文件其实也就是一个压缩文件,当我们将一个.docx
文件直接解压后可以看到_rels、docProps、word
三个文件夹和文件[Content_Types].xml
,其中我们要找的图片就在word/media
目录内。因此,要提取word内的图片可以考虑将.docx
文件解压,再从word/media
文件内提取图片,最后将解压后的临时文件删除即可。
代码实现
完整代码
- GitHub链接:https://github.com/XiaokangLei/image_toolkit
方法1
import zipfile
import os
import shutildef word2img(word_path, result_path):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)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_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))
方法2
- 需要安装docx库:
pip install docx
import os
import docx
import redef word2img2(word_path, result_path):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]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中的表格写入excel
1.将word中的表格提取提取到json中 # -*- coding: UTF-8 -*- import json import docx file_pp=r"C:\Users\docx\2 ...
- Python提取Word中的图片
⚡插播一条老家自产的糖心苹果,多个品种,欢迎选购!有问题随时私信我⚡:
- Python提取Word文件中的目录标题保存为Excel文件
from docx import Document from openpyxl import Workbook from openpyxl.styles import Alignment, Borde ...
- Python PDF转Word,以及提取Word中图片里的文字
PDF转Word,以及提取Word中图片里的文字 PS: 也是从网上各个帖子中学习的Python,因此代码的格式以及内容有粘贴网上其他大神的代码,如有侵权请告知删除 软件截图: #!/usr/bin/ ...
- 【Python】Python提取word表格,并保存在excel中
需求:一些常用的对word的操作和提取word的表格,并保存在excel中 pip install python-docx from docx import Document from openpyx ...
- python提取word表格里的内容_python读取word表格 python中如何将word表格内的内容进行替换...
python如何获取word文件中某个关键字之后的表格一片春愁待酒浇.江上舟摇,楼上帘招.秋娘度与泰娘娇.风又飘飘,雨又萧萧.何日归家洗客袍?银字笙调,心字香烧.流光容易把人抛.红了樱桃,绿了芭蕉. ...
- python 替换array中的值_利用Python提取视频中的字幕(文字识别)
我的CSDN博客id:qq_39783601,昵称是糖潮丽子~辣丽 从今天开始我会陆续将数据分析师相关的知识点分享在这里,包括Python.机器学习.数据库等等. 今天来分享一个Python小项目! ...
- 利用python提取视频中的字幕
利用python提取视频中的字幕 `` 一.导包 import base64 import os import cv2 import requests import aip from aip impo ...
- access数据放到list中_利用Python提取视频中的字幕(文字识别)
我的CSDN博客id:qq_39783601,昵称是糖潮丽子~辣丽 从今天开始我会陆续将数据分析师相关的知识点分享在这里,包括Python.机器学习.数据库等等. 今天来分享一个Python小项目! ...
最新文章
- 求逆元 - HNU 13412 Cookie Counter
- Filter:过滤器
- SAP屏幕设计器专题:树控件的使用(九)
- MapReduce示例——WordCount(统计单词)
- 《转》程序员必须知道的10大基础实用算法及其讲解
- 以下哪个不是有效的java变量名,Java程序设计-中国大学mooc-题库零氪
- java7 异常继承_Java基础7-异常;jar包
- 由Dvbbs PHP 0day引发的争论
- 利用异步I/O复制文件及详解
- 医学科研中的作用_医学方复旦附属中山医院科研技能训练营开课啦!一起来感受数据挖掘的魅力!...
- superset docker 部署
- 罗永浩回应“调侃”俞敏洪转行做直播;苹果3月9日举行春季发布会;CentOS推出新车载Linux发行版 | 极客头条...
- 为什么应尽量从列表的尾部进行元素的增加与删除操作?
- springboot-28-security(一)用户角色控制
- java反射入门,JAVA从入门到精通之java反射
- 内联函数与宏定义的区别
- spss-多元线性回归分析
- Java *1.11(人口估算)美国人口调查局基于以下假设进行人口估算:
- parser.parse_known_args()理解
- Python 强制限定小数点位数