Python Docx:提取两个给定字符串之间的表格

3

我想要提取在Word文档中两段文字之间的特定表格列表。我使用Python docx来完成这个任务,但我遇到了一个问题,就是需要通过以下方式来解析文本:

document.paragraphs[index].text
通过解析表格
document.tables[index].cell[row,col]

这样可以将文本和表格分开,使得仅仅在两份文本之间获取表格列表变得更加困难。我尝试的方法是使用下面表单中每个列表的元素来获取段落/表格的地址。

<docx.text.paragraph.Paragraph object at 0x04299FD0>

我会提取每个表格的地址并检查它是否在起始和结束文本的地址之间。但是,问题在于所有表格地址都大于文本的起始和结束地址,我找不到任何关于python docx如何查找这些地址的文档,因为我假设地址是顺序逐步通过文档的。这种方法可以工作吗?我可以尝试哪些其他方法来查看文档中两个文本之间的表格?

1个回答

2

这个限制有一个解决方法,可以在这里找到: https://github.com/python-openxml/python-docx/issues/40

你需要向下滚动到最后面,也许要反向阅读以及正常阅读;基于对python-docx内部的更改,该过程已经进行了一些调整。

像下面这个对象的地址是指内存位置,与Python-docx文档中段落或其他内容的顺序没有定义关系。它们可以被视为该Python内存对象的唯一标识符,但仅此而已。请注意术语“内存对象”的谨慎使用,而不是“文档对象”。例如,如果创建了两个都引用文档中相同段落的对象,则它们将具有两个不同的地址。

<docx.text.paragraph.Paragraph object at 0x04299FD0>

这些值可以通过Python中的id()函数访问。 https://docs.python.org/2/library/functions.html#id

1
谢谢!在实现了链接中的代码更改后,我能够按顺序解析文本和表格。但是,如果它们不是文档中的特定位置,我仍然很好奇那些地址是什么。 - L2Code
@L2Code 我已经详细阐述了我的回答以回应您的次要问题。 - scanny

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接