首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >解析pdf文件时使用pdfminer.six时出现问题

解析pdf文件时使用pdfminer.six时出现问题
EN

Stack Overflow用户
提问于 2018-02-09 04:29:48
回答 2查看 2.6K关注 0票数 2

我正在尝试使用pdfminer.six从pdf中提取文本,我遵循了下面提到的here代码

代码语言:javascript
复制
import pdfminer
import io

def extract_raw_text(pdf_filename):
    output = io.StringIO()
    laparams = pdfminer.layout.LAParams()

    with open(pdf_filename, "rb") as pdffile:
        pdfminer.high_level.extract_text_to_fp(pdffile, output, laparams=laparams)

    return output.getvalue()

print(extract_raw_text('simple1.pdf'))

但是它产生了一个错误

代码语言:javascript
复制
Traceback (most recent call last):
  File "extract.py", line 13, in <module>
    print(extract_raw_text('simple1.pdf'))
  File "extract.py", line 6, in extract_raw_text
    laparams = pdfminer.layout.LAParams()
AttributeError: module 'pdfminer' has no attribute 'layout'

我只是想从pdf中提取整个文本,任何帮助将不胜感激。

EN

回答 2

Stack Overflow用户

发布于 2019-04-10 00:15:31

我也有同样的问题!这可能是新更新的一个问题,因为python不会将额外的文件识别为模块,因为它们没有很好地分类。

因此,您需要做的就是直接导入特定的文件,您可以通过以下三种方式完成此操作:

在你的代码中(整个模块)

不使用import pdfminer,而是导入要使用的特定模块

代码语言:javascript
复制
import pdfminer.layout
import pdfminer.high_level

这样,您就可以像在中那样直接访问模块的所有类

laparams = pdfminer.layout.LAParams()

代码内部(特定的类/函数)

同样的逻辑也适用,但在这里,我们将只选择要在每个模块中使用的特定类(在本例中,您已经使用了类/函数LAParams()extract_text_to_fp

所以你会这样做:

代码语言:javascript
复制
from pdfminer.layout import LAParams
from pdfminer.high_level import extract_text_to_fp

在模块本身上(为每次使用都进行修复)

这是一个杀手级的解决方案,但不是最优的,因为您可能会在每次更新模块时丢失这些更改。但是,如果您经常使用此模块,则会很有用。

  1. 在你的终端python -m site上找到你的站点包位置,你就会找到所有的路径。看看像这样完成...lib/python3.6/site-packages
  2. Find你的pdfminer模块的人,打开文件夹,打开__init__.py文件
  3. 为你想要预加载的所有模块写代码,例如:

导入pdfminer.high_level导入pdfminer.layout

现在,每次您使用import pdfminer时,这些模块也会被预加载,所以您可以像上面编写的那样运行代码,它就可以工作了。

票数 3
EN

Stack Overflow用户

发布于 2020-10-30 22:12:17

这为我解决了这个问题。

代码语言:javascript
复制
pip install --upgrade camelot-py
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48694272

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档