docx顺序遍历所有
table paragraph的基类都是相同的,可以利用这一点。1
2
3
4
5doc.tables[0].__class__.__bases__
(<class 'docx.shared.Parented'>,)
doc.paragraphs[0].__class__.__bases__
(<class 'docx.shared.Parented'>,)
基类相同,但是子类不同,由此可以区分,所以这样写:1
2
3
4
5
6
7
8
9
10from docx.shared import Parented
from docx.table import Table
from docx.text.paragraph import Paragraph
for element in doc.element.body:
if isinstance(element,Table):
#对表格处理
elif isinstance(element,Paragraph):
#对文字处理