1 问题分析
docx格式的文件本质上是一个ZIP文件,因此一个docx文件的后缀改为zip后是可以用解压工具打开的。而将一个docx文件的后缀改为zip后就可以发现有一个文件夹储存了所有的Word文档图片。
图1. 1更改文件后缀名
将docx文件的后缀改为ZIP后:
图1. 2 zip文件目录
可以看到一个固定的存放图片文件夹:/word/media/
图1. 3图片存放目录
找到了图片存放的固定的路径,那么只需要修改文件后缀名,再将图片拷贝出来,最后把文件从zip改回docx即可。
2 实现代码
import zipfile
docx_path = "…" # docx文件路径 image_path = "…" # 图片存放路径
docx = zipfile.ZipFile(docx_path)
for info in docx.infolist(): if info.filename.endswith((".png", ".jpeg", ".gif")): docx.extract(info.filename, image_path) |
3 运行结果
原文件包含的图片:
图3. 1原文件包含的图片
提取的图片:
图3. 2提取的图片