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

Sea*_*VDH 5 python docx python-docx

我试图拆开一个看起来像这样的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
Run Code Online (Sandbox Code Playgroud)

我一直在尝试搜索自定义样式,但所有结束都在"正常",而不是"ListNumber".

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

sca*_*nny 5

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

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

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

  • 感谢您提供的翔实答案。自从一年前发布以来,我不知道... python-docx处理列表的功能是否有所改善?TIA (2认同)