使用 Python 从多个 PDF 文件中查找多个单词

Find Multiple Words from Multiple PDF Files with Python

我正在尝试编写一个 Python 脚本,它将加载多个 PDF 文件,然后搜索特定的单词。

我有一个脚本,它需要 1 个单词,然后尝试在 1 个 PDF 中找到它,它和单词一样,是由我自己提供的。我希望将此脚本扩展为多个单词和 PDF。我知道实际所需的最终脚本需要 os 模块中的其他方法,但是我对 Python 的了解有时有点粗略。

尽管我认为这将是一项基本任务,但 Google 总是让我失望,而且我似乎问了太多具体问题,因此我来这里的原因。

我目前拥有的:

import PyPDF2 as PDF #import pdf module 
import re

p = PDF.PdfFileReader("UserJoe.pdf")

# get number of pages
NumPages = p.getNumPages()

#define keyterms; David, Final, End, Score, Birthday, Hello Ben

kTerm = "David, Final, End, Score, Birthday, Hello Ben"

#extract text and do the search
for i in range(0, NumPages):
    PageObj = p.getPage(i)
    print("Looking through page " + str(i))
    Text = PageObj.extractText()
    Result = re.search(kTerm,Text)

    if Result:
         print(f"{kTerm} found")
    else:
         print("0")

所以这个脚本有效,但不是我想要的那样。它只会搜索 "David" 但不会搜索整个字符串,这正是我想要的。重申一下,我希望它适用于多个 PDF 文件,而不仅仅是 1 个,我必须在其中提供文件名

非常感谢任何帮助

您的搜索词有误。 re.search(kTerm,Text) 会将 kTerm 解释为正则表达式。您将 kTerm 定义为 "David, Final, End, Score, Birthday, Hello Ben",它正在寻找 David, Final, End, Score, Birthday, Hello Ben 的精确出现。您可以将“,”替换为类似于或的管道符号(“|”)。如果你这样做

kTerm = "David, Final, End, Score, Birthday, Hello Ben".replace(", ", "|")

"David|Final|End|Score|Birthday|Hello Ben" 您搜索 "David" 或 "Final" 或 "End" 或...

当我 运行 上面的代码时,我需要滚动输出以找到找到单词的行。我希望包含单词的行被打印或另存为单独的文件,或者仅包含该行的页面被保存在单独的 pdf 或 txt 文件中。预先感谢您的帮助