python读取word文档,遍历每一个段落,用docx中tag.endswith('}drawing')方法查看其中有没有图片,有则保存该图片,请给出代码
时间: 2024-05-15 09:17:40 浏览: 14
下面是Python代码实现,可以读取Word文档中的每个段落,如果其中含有图片,则将其保存到本地:
``` python
import docx
import os
# 读取Word文档
doc = docx.Document('example.docx')
# 遍历每个段落
for para in doc.paragraphs:
# 查看段落中是否存在图片
for run in para.runs:
# 判断是否存在图片
if run._element.tag.endswith('}drawing'):
# 获取图片名称
image_name = run._element.xpath('.//pic:blipFill/a:blip/@r:embed', namespaces=docx.opc.constants.PREFIXES)[0]
# 保存图片到本地
with open(image_name, 'wb') as f:
f.write(run._element.xpath('.//a:blip/a:extLst/a:ext/@uri', namespaces=docx.opc.constants.PREFIXES)[0])
print(f"保存图片成功: {image_name}")
```
说明:
- `docx.Document()` 函数可以读取Word文档,返回一个 Document 对象。
- `doc.paragraphs` 属性可以获取Word文档中所有的段落,返回一个列表。
- 对于每个段落,我们需要遍历每个 run (即格式相同的文本段落),判断其中是否含有图片。
- 对于含有图片的段落,我们可以从 `run._element` 属性中获取图片的名称和二进制数据,然后将其保存至本地。
- 注意,保存至本地时需要以二进制模式打开文件。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)