我正在试图提取一个特定的表列表,这些表位于word文档中的两段文本之间。为此,我使用python docx,我面临的问题是文本可以通过使用
document.paragraphs[index].text而表则通过使用
document.tables[index].cell[row,col]这分离了文本和表,使得在两段文本之间只包含表列表变得更加困难。我尝试的方法是使用下面表格中每个列表的元素来获取段落/表的地址。
<docx.text.paragraph.Paragraph object at 0x04299FD0>然后,我将提取每个表的地址,并检查它是否在开始和结束文本的地址之间。但是,问题是所有的表地址都比文本的起始地址和结束地址大,而且我找不到任何关于python如何找到这些地址的文档,因为我假设这个地址是通过文档逐步顺序的。这种方法能起作用吗?我还能用什么其他方法来查看word文档中两段文本之间的表呢?
发布于 2015-07-02 20:51:35
这里描述的这个限制有一个解决办法:https://github.com/python-openxml/python-docx/issues/40
您将希望向下滚动到最后,并可能以反向顺序和常规方式阅读;根据对最近版本的python-docx内嵌的更改,对过程进行了一些调整。
以下对象的地址引用内存位置,与python文档中段落或其他内容的顺序没有定义关系。它们可以作为该Python内存对象的唯一标识符,但仅此而已。注意仔细使用“内存对象”一词,而不是“文档对象”。例如,如果创建了两个同时引用文档中相同段落的对象,那么它们将有两个不同的地址。
<docx.text.paragraph.Paragraph object at 0x04299FD0>这些值可以使用Python中的id()函数访问。https://docs.python.org/2/library/functions.html#id
https://stackoverflow.com/questions/31189517
复制相似问题