Я нахожусь на 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