【问题标题】:Python - Slate3k Giving me an type error after pdfminer installPython - Slate3k 安装 pdfminer 后给我一个类型错误
【发布时间】:2020-10-07 15:19:59
【问题描述】:

我在 Windows 10 上使用 Python 3.8.3

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

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

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

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

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

这是代码(请注意我没有做太多的错误捕获,它仍在进行中,我更多的是处于“概念验证”阶段):

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

【问题讨论】:

    标签: python python-3.x pdf slate


    【解决方案1】:

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

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

    现在一切似乎都正常了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-21
      • 1970-01-01
      相关资源
      最近更新 更多