Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 使用Python从多个PDF文件中查找多个单词_Python 3.x_Pypdf2 - Fatal编程技术网

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

Python 3.x 使用Python从多个PDF文件中查找多个单词,python-3.x,pypdf2,Python 3.x,Pypdf2,我正在尝试编写一个Python脚本,它将加载多个PDF文件,然后搜索特定的单词 我有一个脚本,将采取1个字,然后尝试,并找到它在1 PDF,这就像这个字,是由我自己提供的。我希望将这个脚本扩展为多个单词和PDF。我知道实际需要的最终脚本需要来自os模块的附加方法,但是我对Python的了解有时有点粗略 尽管我认为这将是一项基本任务,但谷歌一直让我失望,似乎我对一个具体问题问得太多了,因此我来这里的原因 到目前为止,我所拥有的: import PyPDF2 as PDF #import pdf m

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

我有一个脚本,将采取1个字,然后尝试,并找到它在1 PDF,这就像这个字,是由我自己提供的。我希望将这个脚本扩展为多个单词和PDF。我知道实际需要的最终脚本需要来自os模块的附加方法,但是我对Python的了解有时有点粗略

尽管我认为这将是一项基本任务,但谷歌一直让我失望,似乎我对一个具体问题问得太多了,因此我来这里的原因

到目前为止,我所拥有的:

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,Birth,Hello Ben”,它正在查找David,Final,End,Score,Birth,Hello Ben的确切匹配项。可以将“,”替换为管道符号(“|”),该符号类似于或。如果你这样做

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

这是
“David | Final | End | Score | Birthday | Hello Ben”
您可以搜索“David”或“Final”或“End”或…

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

OK,它提供了多个关键术语,您只需了解如何将其用于多个PDF文件。不过帮了大忙