我正在尝试编写一个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个,我必须提供文件名
任何帮助表示赞赏
答案 0 :(得分:1)
您的搜索词是错误的。 re.search(kTerm,Text)
会将kTerm
解释为正则表达式。您将kTerm定义为"David, Final, End, Score, Birthday, Hello Ben"
,它正在寻找David, Final, End, Score, Birthday, Hello Ben
的确切出现。您可以将管道符号(“ |”)替换为“,”,例如or。如果你这样做
kTerm = "David, Final, End, Score, Birthday, Hello Ben".replace(", ", "|")
"David|Final|End|Score|Birthday|Hello Ben"
就是您搜索“ David”或“ Final”或“ End”或...
答案 1 :(得分:0)
运行上面的代码时,我需要在输出中滚动查找找到单词的行。我希望包含单词的行将被打印或保存为单独的文件,或者仅包含行的页面将被保存在单独的pdf或txt文件中。感谢您的提前帮助