将关键字与 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()

解决方法

您错过了两行:import PyPDF2pdfReader = PyPDF2.PdfFileReader(pdfFileObj)

请注意,getPage(0) 将返回页码 0 对象,在您的 for 循环中您不断阅读同一页面,如果您想阅读每次迭代的新页面,您应该检查文档中有多少页和创建从 0 到 pdfReader.numPages 的 i 参数。

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()

working-with-pdf-files-in-python