前面推送了使用docx2python扩展库提取文档中图片的文章之后,经网友perfect提醒,实际上使用python-docx这个扩展库也可以提取浮动图片,并给出了参考代码。经过分析和测试,确实可以,然后根据分析我把perfect朋友给出的代码又简化改进了一下,思路如下:
仍以Python提取docx文档中所有嵌入式图片和浮动图片一文中用到的“包含图片的文档.docx”为例,将其改名为zip文件并解压缩,
打开子文件夹word\media,内容如下:
打开子文件夹word\_rels中的文件document.xml.rels,内容如下:
打开子文件夹word中的文件document.xml,部分内容如下:
可见,不管是嵌入式图片还是浮动图片,都有对应的id,然后可以使用python-docx提供的document.part.related_parts通过id找到对应的part,再提取其中的属性和数据即可。
参考代码:
提取结果: