Python - Slate3k 在 pdfminer 安装后给我一个类型错误
Python - Slate3k Giving me an type error after pdfminer install
我在 Python 3.8.3
windows 10.
我正在研究 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'
这是代码(请注意,我没有做太多错误捕获,它仍在进行中,我更多地处于 "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
的依赖关系,我发现了它所依赖的几个程序。
我卸载了 slate3k
、pdfminer3k
和 pdfminer
,然后重新安装了 slate3k
。
现在一切似乎都正常了。
我在 Python 3.8.3
windows 10.
我正在研究 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'
这是代码(请注意,我没有做太多错误捕获,它仍在进行中,我更多地处于 "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
的依赖关系,我发现了它所依赖的几个程序。
我卸载了 slate3k
、pdfminer3k
和 pdfminer
,然后重新安装了 slate3k
。
现在一切似乎都正常了。