我认为标题几乎可以自我解释。在段落为“ ListParagraph”类型的情况下,下面的代码省略了编号:
import docx
doc = docx.Document('test.docx')
for para in doc.paragraphs:
print(para.text)
要推断编号,我了解的是必须去到document.xml并将其与numbering.xml进行互相关。因此,使用python-docx我们可以说
numId_val = para._element.pPr.numPr.numId.val
使您可以访问编号样式ID。然后拨打电话
para._element.pPr.numPr.ilvl.val
使您可以访问从0开始的编号级别。
然后,原则上可以基于numId_vals和ilvls的顺序构造一种递归算法来推断编号。
但是我发现,如果作者自定义她的列表开头(例如十进制数字,而不仅仅是十进制整数),这将无法提取正确的编号。
是否有正确且更强大的解决方案?
非常感谢您的帮助-这已经使我的大脑消沉了一段时间。