[英]Python - Slate3k Giving me an type error after pdfminer install
我在 windows 10 上的Python 3.8.3
上。
我正在研究 pdfparser,我最初發現slate3k
可以與Python 3.X
一起使用。 我得到了一個基本腳本,並開始在一些 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
我通過查看pip show slate3k
查看了對slate3k
的依賴關系,我發現了它依賴的幾個程序。
我卸載slate3k
、 pdfminer3k
和pdfminer
,然后重新安裝了slate3k
。
現在一切似乎都在工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.