原理说明

.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中的所有图片相关推荐

  1. python提取word中的表格写入excel

    1.将word中的表格提取提取到json中 # -*- coding: UTF-8 -*- import json import docx file_pp=r"C:\Users\docx\2 ...

  2. Python提取Word中的图片

    ⚡插播一条老家自产的糖心苹果,多个品种,欢迎选购!有问题随时私信我⚡:

  3. Python提取Word文件中的目录标题保存为Excel文件

    from docx import Document from openpyxl import Workbook from openpyxl.styles import Alignment, Borde ...

  4. Python PDF转Word,以及提取Word中图片里的文字

    PDF转Word,以及提取Word中图片里的文字 PS: 也是从网上各个帖子中学习的Python,因此代码的格式以及内容有粘贴网上其他大神的代码,如有侵权请告知删除 软件截图: #!/usr/bin/ ...

  5. 【Python】Python提取word表格,并保存在excel中

    需求:一些常用的对word的操作和提取word的表格,并保存在excel中 pip install python-docx from docx import Document from openpyx ...

  6. python提取word表格里的内容_python读取word表格 python中如何将word表格内的内容进行替换...

    python如何获取word文件中某个关键字之后的表格一片春愁待酒浇.江上舟摇,楼上帘招.秋娘度与泰娘娇.风又飘飘,雨又萧萧.何日归家洗客袍?银字笙调,心字香烧.流光容易把人抛.红了樱桃,绿了芭蕉. ...

  7. python 替换array中的值_利用Python提取视频中的字幕(文字识别)

    我的CSDN博客id:qq_39783601,昵称是糖潮丽子~辣丽 从今天开始我会陆续将数据分析师相关的知识点分享在这里,包括Python.机器学习.数据库等等. 今天来分享一个Python小项目! ...

  8. 利用python提取视频中的字幕

    利用python提取视频中的字幕 `` 一.导包 import base64 import os import cv2 import requests import aip from aip impo ...

  9. access数据放到list中_利用Python提取视频中的字幕(文字识别)

    我的CSDN博客id:qq_39783601,昵称是糖潮丽子~辣丽 从今天开始我会陆续将数据分析师相关的知识点分享在这里,包括Python.机器学习.数据库等等. 今天来分享一个Python小项目! ...

最新文章

  1. 求逆元 - HNU 13412 Cookie Counter
  2. Filter:过滤器
  3. SAP屏幕设计器专题:树控件的使用(九)
  4. MapReduce示例——WordCount(统计单词)
  5. 《转》程序员必须知道的10大基础实用算法及其讲解
  6. 以下哪个不是有效的java变量名,Java程序设计-中国大学mooc-题库零氪
  7. java7 异常继承_Java基础7-异常;jar包
  8. 由Dvbbs PHP 0day引发的争论
  9. 利用异步I/O复制文件及详解
  10. 医学科研中的作用_医学方复旦附属中山医院科研技能训练营开课啦!一起来感受数据挖掘的魅力!...
  11. superset docker 部署
  12. 罗永浩回应“调侃”俞敏洪转行做直播;苹果3月9日举行春季发布会;CentOS推出新车载Linux发行版 | 极客头条...
  13. 为什么应尽量从列表的尾部进行元素的增加与删除操作?
  14. springboot-28-security(一)用户角色控制
  15. java反射入门,JAVA从入门到精通之java反射
  16. 内联函数与宏定义的区别
  17. spss-多元线性回归分析
  18. Java *1.11(人口估算)美国人口调查局基于以下假设进行人口估算:
  19. parser.parse_known_args()理解
  20. Python 强制限定小数点位数

热门文章

  1. 毕业设计-进销存管理系统
  2. python程序运行结果不停_关于python:在进程运行时不断打印Subprocess输出
  3. Python爬取全国大学排名 用pyecharts进行大屏可视化
  4. 营改增后计算机维修费税率,2020国税维修费税率是多少?
  5. python安装opencv及检测是否安装成功
  6. 中间件监控和告警方案
  7. 2019年,给你在成都必混IT界的几大理由!
  8. SAP BW实施实时报表的方法(流式处理链)
  9. 《卓有成效程序员》第四章
  10. 赠与今年的大学毕业生,胡适