Python - Slate3k 在 pdfminer 安装后给我一个类型错误

Python - Slate3k Giving me an type error after pdfminer install

我在 Python 3.8.3 windows 10.

我正在研究 pdfparser,我最初发现 slate3kPython 3.X 一起使用。我得到了一个基本的脚本,并开始在一些 PDF 上测试它。我遇到了一些文本没有被正确解析的问题,所以我开始研究 PDFMiner.

阅读 PDFMiner 的文档后,我决定安装它并尝试一下,因为它的一些功能对我的用例非常有用。

但是,我很快发现 PDFMiner 不适用于 Python 3.x。我卸载了它并返回使用 slate3k.

当我这样做时,我开始遇到一堆错误。然后我卸载了 slate3k 并重新安装希望修复它。仍然有错误。我重新安装了 PDFMiner 并消除了这些错误,但现在我遇到了以下错误,我不知道下一步该怎么做。

Exception has occurred: TypeError __init__() missing 1 required positional argument: 'parser'

这是代码(请注意,我没有做太多错误捕获,它仍在进行中,我更多地处于 "proof of concept" 阶段):

import re, os
import slate3k as slate

# variable define
CurWkDir = os.getcwd()
tags= list()
rev= str()
FileName = str()
ProperFileName = str()
parsed = str()

# open file and create if it doesn't exist
xref = open('parsed from pdf xref.csv', 'w+')
xref.write('File Name, Rev, Tag')

for files in os.listdir(CurWkDir):

    # find pdf files
    if files.endswith('.pdf'):

        tags.clear()
        rev = ""
        FileName = ""
        ProperFileName = ""

        #extract revision, file name, create proper file name
        rev = re.findall(r'[0-9]{,2}[A-Z]{1}[0-9]{,2}',files)[0]
        FileName = re.findall(r'[A-Z]+[0-9]+-[A-Z]+-[0-9]+-[0-9]+|[A-Z]+[0-9]+-[A-Z]+-[A-Z]+[0-9]+-[0-9]+|[A-Z]+[0-9]+-[A-Z]+-[A-Z]+[0-9]+[A-Z]+-[0-9]+', files)[0]
        ProperFileName = FileName + "(" + rev[0: len(rev) - 1] + ")"

        # Parse through PDF to find tags
        fileopen = open(files, 'rb')
        print("Reading", files)
        raw = slate.PDF(fileopen)
        print("Finished reading", files)
        parsed = raw[0]
        parsedstripped = parsed.replace("\n"," ")
        rawtags = re.findall(r'[0-9]+[A-Z]+-[0-9]+|[0-9]+[A-Z]+[0-9]{1,5}|[0-9]{3}[A-Z]+[0-9]+', parsed, re.I)
        fileopen.close
        print(parsedstripped)

        for t in rawtags:

            if t not in tags:

                row = ProperFileName + "," + rev + "," + t + "\n"
                xref.write(row)
                tags.append(t)

xref.close()

错误出现在第34行 raw = slate.PDF(fileopen)

对我为破坏 slate3k 的功能所做的任何见解表示赞赏。

谢谢,

JT

我通过查看 pip show slate3k 调查了对 slate3k 的依赖关系,我发现了它所依赖的几个程序。

我卸载了 slate3kpdfminer3kpdfminer,然后重新安装了 slate3k

现在一切似乎都正常了。