python-docx怎么获取Word里面的图片
时间: 2024-02-05 08:11:47 浏览: 300
可以使用python-docx库中的`InlineShapes`和`Shapes`对象来获取Word文档中的图片。
以下是使用`InlineShapes`和`Shapes`对象获取图片的代码示例:
```python
import os
from docx import Document
from docx.oxml import parse_xml
from docx.oxml.ns import nsdecls
from docx.oxml import OxmlElement
# 打开Word文档
doc = Document('example.docx')
# 获取InlineShapes中的图片
for inline_shape in doc.inline_shapes:
if inline_shape.has_picture:
# 获取图片文件名
image_filename = inline_shape._inline.graphic.graphicData.pic.nvPicPr.cNvPr.name
# 获取图片二进制数据
image_data = inline_shape._inline.graphic.graphicData.pic.blipFill.blip.blob
# 保存图片到文件
with open(image_filename, 'wb') as f:
f.write(image_data)
# 获取Shapes中的图片
for shape in doc.shapes:
if shape.has_picture:
# 获取图片文件名
image_filename = shape._element.xpath('.//a:blip', namespaces=nsdecls)[0].get('embed')
# 获取图片二进制数据
image_part = doc.part.related_parts[image_filename]
image_data = image_part.blob
# 保存图片到文件
with open(image_filename, 'wb') as f:
f.write(image_data)
```
需要注意的是,如果Word文档中的图片是链接到外部文件的,则无法使用上述方法获取图片。此时需要先将图片保存到本地,并在Word文档中插入本地图片,才能使用上述方法获取图片。
阅读全文