请帮我编写一段Python代码,以完成下面这个任务:我有一个文件夹,里面有一些PDF文献。现在我想知道里面有多少个文献是包含有某个关键词的。这些关键词被我存放在一个txt文档中,每行一个,每个关键词我都想判断一下有多少文件里出现了。
时间: 2023-06-04 08:04:32 浏览: 85
当然,我很乐意为您编写这段Python代码。以下是代码:
```
import os
import PyPDF2
# 定义函数count_keyword_in_pdf
def count_keyword_in_pdf(keyword, pdf_path):
count = 0
with open(pdf_path, 'rb') as f:
pdfReader = PyPDF2.PdfFileReader(f)
for pageNum in range(pdfReader.numPages):
pageObj = pdfReader.getPage(pageNum)
if keyword.lower() in pageObj.extractText().lower():
count += 1
return count
# 定义查找关键词的函数
def find_keywords_in_folder(folder_path, keywords_path):
keywords = []
with open(keywords_path, 'r') as f:
for line in f:
keywords.append(line.strip())
results = {}
for filename in os.listdir(folder_path):
if filename.endswith('.pdf'):
pdf_path = os.path.join(folder_path, filename)
for keyword in keywords:
count = count_keyword_in_pdf(keyword, pdf_path)
if keyword not in results:
results[keyword] = count
else:
results[keyword] += count
return results
# 测试
if __name__ == '__main__':
folder_path = '/path/to/folder'
keywords_path = '/path/to/keywords.txt'
results = find_keywords_in_folder(folder_path, keywords_path)
for keyword, count in results.items():
print('Keyword "{}" appears in {} PDF files'.format(keyword, count))
```
在上面的代码中,我们定义了两个函数。函数count_keyword_in_pdf用于计算关键词在一个PDF文件中出现的次数。函数find_keywords_in_folder用于在一个文件夹中查找所有PDF文件中所有关键词的出现次数,并返回一个字典,其中关键词作为键,出现次数作为值。
我们可以通过更改folder_path和keywords_path来测试代码。
阅读全文