当前位置: 首页 > 知识库问答 >
问题:

在文档的页面上查找单词

孟意致
2023-03-14

我正在寻找一个优雅的解决方案,来查找我存储在python字典/列表中的某个单词出现在文档的哪个页面。

我首先考虑的是。docx格式作为输入,并查看了PythonDocx,它有一个搜索功能,但在docx/xml格式中显然没有真正的页面属性。如果我分析文档,我可以查找

我甚至考虑过先将文件转换成PDF格式,然后使用类似PDFminer的东西对文档进行逐页解析

有没有什么简单的解决方案可以在. docx文档中搜索字符串并返回它出现的页面,比如

[('foo' ,[1, 4, 7 ]), ('bar', [2]), ('baz', [2, 5, 8, 9 )]

共有1个答案

严烨
2023-03-14

你的问题中最大的挑战似乎是如何逐页解析文档。word文档的答案并不总是相同的,这取决于页边距、纸张设置、打开它的应用程序等。在google group上可以找到一个关于任何脚本准确性的好理由。

然而,如果你能满足于几乎100%的准确性,你开始找到一个解决方案,在这个谷歌小组建议:

我发现我可以解开拉链。docx文件并解压缩docProps/app。xml,然后用ElementTree解析xml以获得

另一种方法是使用win32com。客户端打开文件,分页,进行搜索,然后以所需格式返回结果。

您可以在下面的答案中找到一个语法示例:

from win32com.client import Dispatch
#open Word
word = Dispatch('Word.Application')
word.Visible = False
word = word.Documents.Open(doc_path)

#get number of sheets
word.Repaginate()
num_of_sheets = word.ComputeStatistics(2)

你也可以看看这个答案,关于在word文档中使用win32com.client.查找和替换

 类似资料:
  • 问题内容: 如何使用Selenium检查当前页面上是否存在给定的文本字符串? 问题答案: 代码是这样的:

  • 我想用selenium来刮一个网页。检查页面并右键单击所建议的XPath属于不稳定类型(/html/body/table[2]/tbody/tr[1]/td/form/table/tbody/tr[2])。因此,我尝试了以下解决方案: 甚至 不要返回任何结果。但是,在本页的前面部分,我可以获得: 似乎在: 我再也无法到达任何元素。如何确定正确的XPath?建议脚本中的部分不可能解析。然而,我所追求

  • 我可以使用哪些python包来找出特定的“搜索字符串”位于哪个页面上? 我研究了几个python pdf包,但不知道我应该使用哪一个。PyPDF似乎没有这个功能和PDFMiner似乎是一个过度杀这样简单的任务。有什么建议吗? 更准确地说:我有几个PDF文档,我想提取介于字符串“Begin”和字符串“End”之间的页面。

  • 我试图使用Xpath立即从活动元素获取数据,但当我运行该项目时,我遇到了这个错误 线程“main”组织中出现异常。openqa。硒。StaleElementReferenceException:stale元素引用:元素未附加到页面文档

  • 问题内容: 我一直在尝试使用elasticsearch过滤仅在正文中包含空字符串的那些文档。到目前为止,我还没有运气。 在继续之前,我要提到的是,我已经尝试过遍及Interwebz和StackOverflow 的 许多 “解决方案”。 因此,以下是我要运行的查询,其后是对应的查询: 我也尝试了以下方法: 以及以下内容: 以上都不起作用。当我确定有包含空字符串字段的记录时,我得到一个空结果集。 如果

  • 有很多关于如何在浏览器中阻止滑动的问题和解决方案。 示例:通过UI反馈动态控制ViewPager可以滚动的方向 然而,我只想阻止特定页面上的向前滑动(我有一个表格和注册按钮,采取下一页编程) 示例:第1页- 尝试扩展类ViewPager与方法onInterceptTouchEvent和onInterceptTouchEvent但这样做时,我不能让按钮工作,因为一切都被读取为MotionEvent.