You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python docx模块识别并处理DOCX文件中的文本、表格与图片?

解决DOCX文档文本、图片、表格的遍历与识别问题

以下是基于python-docx模块的完整解决方案,能同时处理文本段落、图片和表格:

完整代码实现

from docx import Document

doc = Document('SomeDoc.docx')

# 遍历处理段落(包含文本和嵌入图片)
for para in doc.paragraphs:
    # 检查段落是否包含内嵌图片
    if para.inline_shapes:
        print('IMAGE')
    # 打印段落文本(跳过空文本段落)
    text_content = para.text.strip()
    if text_content:
        print(text_content)

# 遍历处理表格
for table in doc.tables:
    print('表格内容:')
    for row in table.rows:
        # 拼接每行单元格内容,用制表符分隔
        row_content = '\t'.join(cell.text.strip() for cell in row.cells)
        print(row_content)

# 可选:处理浮动图片(不嵌入段落的图片)
for shape in doc.shapes:
    # shape_type=13代表图片类型
    if shape.shape_type == 13:
        print('IMAGE(浮动)')

关键说明

  1. 图片识别:

    • 内嵌图片(和文本在同一段落)通过段落的inline_shapes属性判断,只要该列表不为空,即说明段落包含图片。
    • 浮动图片(独立于段落的图片)通过文档的shapes集合遍历,判断shape_type是否为13(DOCX中图片的类型标识)。
  2. 表格内容提取:

    • 通过doc.tables获取文档中所有表格,遍历每行的单元格,拼接单元格文本实现表格内容的打印。
  3. 原代码不足:

    • 仅遍历了doc.paragraphs,遗漏了表格和段落内的图片元素,因此无法识别图片和提取表格内容。

内容的提问来源于stack exchange,提问作者Karel CZ

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 20:02:26