Сравнение ключевых слов с файлами PDF
Вот программа, которая вызывает файлы по имени папки и извлекает данные. Теперь я хочу сравнить данные с ключевыми словами, которые я использовал в программе ниже. Но это дает мне:
pdfReader = pdfFileObj.loadPage(0)
AttributeError: '_io.BufferedReader' object has no attribute 'loadPage'
Я хочу убрать ошибку и сравнить ключевые слова с извлеченными данными. Я использовал библиотеку PyMuPDF для этой программы.
import fitz
import os
pdfFiles = []
for filename in os.listdir('resume/'):
if filename.endswith('.pdf'):
print(filename)
# pdfFiles.append(filename)
os.chdir('C:/Users/M. Abrar Hussain/Desktop/cv/resume')
print('Current working dir : %s' % os.getcwd())
pdfFileObj = open(filename, 'rb')
pdfReader = pdfFileObj.loadPage(0)
with fitz.open(pdfFileObj) as doc:
text = ""
for page in doc:
text += page.getText()
print(text)
# split the docs
pageObj = pdfReader.getpage(0)
t1 = (pageObj.getText())
t1 = t1.split(",")
search_keywords = ['python', 'Laravel', 'Java']
for sentence in t1:
lst = []
for word in search_keywords:
if word in search_keywords:
list.append(word)
print('{0} key word(s) in sentence: {1}'.format(len(lst), ', '.join(lst)))
pdfFileObj.close()
1 ответ
Вы пропустили две строчки:
import PyPDF2
а также
pdfReader = PyPDF2.PdfFileReader(pdfFileObj)
Заметь
getPage(0)
вернет объект номер страницы 0, в вашем цикле for вы постоянно читаете одну и ту же страницу, если вы хотите читать каждую итерацию новой страницы, вы должны проверить, сколько страниц в документе, и создать параметр i, который работает от 0 до
pdfReader.numPages
.
import fitz
import os
import PyPDF2
pdfFiles = []
for filename in os.listdir('resume/'):
if filename.endswith('.pdf'):
print(filename)
# pdfFiles.append(filename)
os.chdir('C:/Users/M. Abrar Hussain/Desktop/cv/resume')
print('Current working dir : %s' % os.getcwd())
pdfFileObj = open(filename, 'rb')
pdfReader = PyPDF2.PdfFileReader(pdfFileObj)
pageObj = pdfReader.getPage(0)
with fitz.open(pdfFileObj) as doc:
text = ""
for page in doc:
text += page.getText()
print(text)
# split the docs
pageObj = pdfReader.getPage(0)
t1 = (pageObj.getText())
t1 = t1.split(",")
search_keywords = ['python', 'Laravel', 'Java']
for sentence in t1:
lst = []
for word in search_keywords:
if word in search_keywords:
list.append(word)
print('{0} key word(s) in sentence: {1}'.format(len(lst), ', '.join(lst)))
pdfFileObj.close()