【问题标题】:How to find a list in docx using python?如何使用 python 在 docx 中查找列表?
【发布时间】:2015-06-01 20:58:30
【问题描述】:

我正在尝试拆分一个如下所示的 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,但如前所述,编号不会持续存在。

【问题讨论】:

  • 你能发布一些你的代码吗?它可能有助于我们更好地理解问题。
  • 我不确定要添加什么 - 我一直在修改一个函数,以便尝试感知底层结构。

标签: python docx python-docx


【解决方案1】:

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

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

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

【讨论】:

  • 感谢您提供的信息丰富的回答。自从这是一年前发布的,我想知道...... python-docx 处理列表的能力有什么改进吗? TIA
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-21
  • 1970-01-01
  • 2015-09-19
相关资源
最近更新 更多