Python - Slate3k выдает ошибку типа после установки pdfminer - PullRequest
0 голосов
/ 17 июня 2020

Я нахожусь на Python 3.8.3 на windows 10.

Я работаю над pdfparser, и изначально я нашел slate3k для использования с Python 3.X. Я получил работающий сценарий basi c и начал тестировать его на некоторых PDF-файлах. У меня были проблемы с некоторым текстом, который не анализировался должным образом, поэтому я начал изучать PDFMiner.

После прочтения документации для PDFMiner я решил установить это, а дать ему go как в нем были некоторые функции, которые были бы очень полезны для моего варианта использования.

Однако вскоре я понял, что 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

1 Ответ

0 голосов
/ 17 июня 2020

Я изучил зависимости slate3k, посмотрев на pip show slate3k, и нашел пару программ, от которых он зависел.

Я удалил slate3k, pdfminer3k и pdfminer и потом переустановил slate3k.

Теперь вроде все работает.

...