如何使用 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 还没有真正实现,所以如果你想用今天的版本。
我正在尝试拆分如下所示的 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 还没有真正实现,所以如果你想用今天的版本。