0

这是通过文件夹名称调用文件并提取数据的程序。现在我想将数据与我在下面程序中使用的关键字进行比较。但它给了我:

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

1 回答 1

0

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

请注意,这getPage(0)将返回页码 0 对象,在您的 for 循环中,您不断阅读同一页面,如果您想阅读每个迭代新页面,您应该检查文档中有多少页并创建从 0 到运行的 i 参数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()

使用 pdf 文件在 python 中工作

于 2021-06-24T07:50:30.767 回答