到目前为止,我已经找到了一种顺序且迭代地读取单词中的段落和表格的方法,但是我对如何顺序读取图片感到困惑。 我想请您在原始代码的基础上帮助我,如何实现迭代单词图片的顺序? 这是我当前的代码
from docx.document import Document as _Document
from docx.oxml.text.paragraph import CT_P
from docx.oxml.table import CT_Tbl
from docx.table import _Cell, Table, _Row
from docx.text.paragraph import Paragraph
import docx
path = './test.docx'
doc = docx.Document(path)
def iter_block_items(parent):
if isinstance(parent, _Document):
parent_elm = parent.element.body
elif isinstance(parent, _Cell):
parent_elm = parent._tc
elif isinstance(parent, _Row):
parent_elm = parent._tr
else:
raise ValueError("something's not right")
for child in parent_elm.iterchildren():
if isinstance(child, CT_P):
yield Paragraph(child, parent)
elif isinstance(child, CT_Tbl):
yield Table(child, parent)
for block in iter_block_items(doc):
# read Paragraph
if isinstance(block, Paragraph):
print(block.text)
# read table
elif isinstance(block, Table):
print(block.style.name)
答案 0 :(得分:0)
您要修改iter_block_items
,以使迭代主体可以处理图片的情况:当前,它仅处理(并产生)段落和表。
我真的不知道格式,但是您可能需要docx.oxml.shape.CT_Picture作为“标志类型”。浏览其文档时,python-docx似乎没有表格或段落包装的图片版本。