如何使用 python 在 docx 中查找列表?

How to find a list in docx using python?

我正在尝试拆分如下所示的 word 文档:

1.0 列表项
1.1 列表项
1.2 列表项
2.0 列表项

它存储在 docx 中,我正在使用 python-docx 来尝试解析它。不幸的是,它在开始时丢失了所有编号。我试图确定每个有序列表项的开始。

python-docx 库也允许我访问样式,但我不知道如何确定该样式是否为列表样式。

到目前为止,我一直在摆弄函数并检查输出,但标准格式类似于:

    for p in doc.paragraphs:
        s = p.style
        while s.base_style is not None:
            print s.name
            s = s.base_style
        print s.name

我一直在使用它来尝试搜索自定义样式,但所有结果都在 "Normal," 而不是 "ListNumber."

我试过在文档、段落和运行中搜索样式,但没有成功。我也尝试搜索 p.text,但如前所述,编号不会持续存在。

列表项可以在 XML 中以多种方式实现。不幸的是,最常见的方式是使用工具栏添加列表项(而不是使用样式),这可能也是最复杂的方式。

最好的办法是开始使用 opc-diag 查看 document.xml 中正在使用的 XML,然后制定策略从那里开始。

python-docx 的列表处理 API 还没有真正实现,所以如果你想用今天的版本。