gpt4 book ai didi

python - 使用 python-docx 迭代 docx 中的目录

转载 作者:行者123 更新时间:2023-12-01 03:51:16 25 4
gpt4 key购买 nike

我有一个包含在文档开头自动生成的目录的文档,我想解析该目录。使用python-docx可以实现这一点吗?如果我尝试迭代 doc.paragraphs.text ,目录中的文本不会显示。

我尝试了以下操作:迭代段落并检查 paragraph.style.name 是否为 toc 1 然后我知道我处于目录中。但我无法获得实际的文本。我试过这个:

if para.style.name == "toc 1" #then print para.text. 

但是 para.text 给了我一个空白字符串。为什么会出现这种情况?

谢谢

最佳答案

由于大部分解决方案都隐藏在评论部分中,并且我花了一段时间才弄清楚OP到底做了什么以及scanny的答案如何改变了他正在做的事情,我将在这里发布我的解决方案,这只是scanny的答案评论部分写了什么。我不完全理解代码是如何工作的,所以如果有人想编辑我的答案,请随意这样做。

#open docx file with python-docx
document = docx.Document("path\to\file.docx")
#extract body elements
body_elements = document._body._body
#extract those wrapped in <w:r> tag
rs = body_elements.xpath('.//w:r')
#check if style is hyperlink (toc)
table_of_content = [r.text for r in rs if r.style == "Hyperlink"]

table_of_content 将是一个列表,首先包含作为项目的编号,然后是标题。

关于python - 使用 python-docx 迭代 docx 中的目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38210905/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com