无法从pdfplumb中的堆栈溢出恢复

2024-05-02 09:39:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图阅读一个1200页的pdf使用python3和pdfplumber。在使用pdfplumber实例化pdf之后,对实例的任何操作都会引发StackOverflow。在pdfplumber或python中有没有一种方法可以让我一部分一部分地阅读pdf

我试着只传递一个页面,但是在pdf实例生成之后,任何实例操作都会抛出Stackoverflow

pdf_instance = pdfplumber.from_path(pdf_path)

# This line throws error
pdf_page = pdf_instance.pages[0]

错误消息如下所示

Fatal Python error: Cannot recover from stack overflow.

Current thread 0x00007f36c68bf700 (most recent call first):
  File "/home/akash/anaconda3/lib/python3.6/logging/__init__.py", line 1546 in isEnabledFor
  File "/home/akash/anaconda3/lib/python3.6/logging/__init__.py", line 1293 in debug
  File "/home/akash/MAY_23/env_doc/lib/python3.6/site-packages/pdfminer/psparser.py", line 544 in add_results
  File "/home/akash/MAY_23/env_doc/lib/python3.6/site-packages/pdfminer/pdfparser.py", line 69 in do_keyword
  File "/home/akash/MAY_23/env_doc/lib/python3.6/site-packages/pdfminer/psparser.py", line 616 in nextobject
  File "/home/akash/MAY_23/env_doc/lib/python3.6/site-packages/pdfminer/pdfdocument.py", line 669 in _getobj_parse
  File "/home/akash/MAY_23/env_doc/lib/python3.6/site-packages/pdfminer/pdfdocument.py", line 691 in getobj
  File "/home/akash/MAY_23/env_doc/lib/python3.6/site-packages/pdfminer/pdftypes.py", line 71 in resolve
  File "/home/akash/MAY_23/env_doc/lib/python3.6/site-packages/pdfminer/pdftypes.py", line 84 in resolve1
  File "/home/akash/MAY_23/env_doc/lib/python3.6/site-packages/pdfminer/pdftypes.py", line 164 in dict_value
  File "/home/akash/MAY_23/env_doc/lib/python3.6/site-packages/pdfminer/pdfpage.py", line 88 in search
  File "/home/akash/MAY_23/env_doc/lib/python3.6/site-packages/pdfminer/pdfpage.py", line 100 in search
  File "/home/akash/MAY_23/env_doc/lib/python3.6/site-packages/pdfminer/pdfpage.py", line 100 in search
  File "/home/akash/MAY_23/env_doc/lib/python3.6/site-packages/pdfminer/pdfpage.py", line 100 in search

...

由于实例的大小太大,所以我需要的解决方案是将pdf分成4-5部分,共250-300页,以后可以对这些部分进行操作和合并


Tags: 实例inpyenvhomedocpdflib