pdf解析PyPDF2和textract时出错

时间:2020-05-31 12:26:27

标签: python for-loop pdf pypdf2

我正在尝试构建一个程序,以查找pdf文件中的特定单词或短短语。文件加载良好,但是当页面更改时搜索pdf时出现问题。这是我的代码:

import PyPDF2
import glob, os, shutil
import textract

os.chdir(r"C:\Users\Dani\Desktop\patent")
goodfiles=[]
for file in glob.glob("*.pdf"):
    pdfFileObj = open(file, 'rb')
    pdfReader = PyPDF2.PdfFileReader(pdfFileObj, strict=False)

    search_word_main = "isophthalic"
    word_main=[]
    search_word_sub = ["acid index", "acid value", "acid number", "acidity index","acidity"]
    word_sub=[]
    for pageNum in range(1, pdfReader.numPages):
        pageObj = pdfReader.getPage(pageNum)
        text = pageObj.extractText().encode('utf-8')
        search_text = text.lower().split()
        toprange=len(search_text)-1

        for len in range (toprange):
           if search_word_main in search_text[len].decode("utf-8"):
                print(search_word_main)
           for key in search_word_sub:
                if key in search_text[len].decode("utf-8") + " " + search_text[len+1].decode("utf-8"):
                    print(key)

在pdf的第一页上,一切正常,但是,每当移至第二页时,都会出现此错误:

Traceback (most recent call last):
  File "test.py", line 19, in <module>
    toprange=len(search_text)-1
TypeError: 'int' object is not callable

我不明白为什么每当页面更改时都会发生这种情况。如果我只是尝试打印toprange变量而不是将其添加到循环中,那没有问题,我会得到toprange的值。 for循环似乎存在问题,但我似乎找不到位置。你能帮我解决这个问题吗?

先谢谢了。

0 个答案:

没有答案