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

时间:2015-06-01 20:58:30

标签: python docx python-docx

我正试图拆开一个看起来像这样的文档:

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

我一直在尝试搜索自定义样式,但全部以“正常”结束,而不是“ListNumber”。

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

1 个答案:

答案 0 :(得分:5)

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

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

python-docx的列表处理API还没有真正实现,所以如果你想用今天的版本完成这项工作,你需要在lxml级别运行。