我已经学习了一些教程,但我无法运行这个代码块,我做了必要的转换,从StringIO到BytesIO(我相信?)

我不确定为什么"香蕉"什么也不打印,我认为这些错误可能是转移注意力的?这跟我跟着Python 有关系吗.7教程,并试图将其翻译成python3?

errors: File "/Users/foo/PycharmProjects/Try/Pdfminer.py", line 28, in <module>
    banana = convert("A1.pdf")
  File "/Users/foo/PycharmProjects/Try/Pdfminer.py", line 19, in convert
    infile = file(fname, 'rb')
NameError: name 'file' is not defined

playbook

from io import BytesIO

from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.converter import TextConverter
from pdfminer.layout import LAParams
from pdfminer.pdfpage import PDFPage

def convert(fname, pages=None):
    if not pages:
        pagenums = set()
    else:
        pagenums = set(pages)

    output = BytesIO()
    manager = PDFResourceManager()
    converter = TextConverter(manager, output, laparams=LAParams())
    interpreter = PDFPageInterpreter(manager, converter)

    infile = file(fname, 'rb')
    for page in PDFPage.get_pages(infile, pagenums):
        interpreter.process_page(page)
    infile.close()
    converter.close()
    text = output.getvalue()
    output.close
    return text

banana = convert("A1.pdf")
print(banana)

这种变体也会发生同样的情况:

from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.converter import TextConverter
from pdfminer.layout import LAParams
from pdfminer.pdfpage import PDFPage
from io import BytesIO

def convert_pdf_to_txt(path):
    rsrcmgr = PDFResourceManager()
    retstr = BytesIO()
    codec = 'utf-8'
    laparams = LAParams()
    device = TextConverter(rsrcmgr, retstr, codec=codec, laparams=laparams)
    fp = file(path, 'rb')
    interpreter = PDFPageInterpreter(rsrcmgr, device)
    password = ""
    maxpages = 0
    caching = True
    pagenos=set()

    for page in PDFPage.get_pages(fp, pagenos, maxpages=maxpages, password=password,caching=caching, check_extractable=True):
        interpreter.process_page(page)

    text = retstr.getvalue()

    fp.close()
    device.close()
    retstr.close()
    return text

Banana = convert_pdf_to_txt("A1.pdf")
print(Banana)

我try 过搜索这个(大部分pdfminer代码来自thisthis),但没有运气.

任何洞察都将不胜感激.

干杯

推荐答案

Python 3.5有一个解决方案:你需要pdfminer.six.在win10岁以下,我可以轻松安装它

pip install pdfminer.six

您可以使用判断安装的版本

pdfminer.__version__

我还没有对它进行深入测试.但是我可以为转换pdf→textpdf→html运行以下代码

Python-3.x相关问答推荐

Pandas—在特定列上比较两行双框,并根据特定条件保留其中一行?

一种基于绝对排序值的极框索引和列定位的Python方法

被多个\n拆分并保留

将字符串转换为python日期时间时出错

查找值始终为零的行 pandas

合并两个数据帧并对某些总和进行求和

SQL Server 2022和Python3.10脚本错误

如何键入提示函数,在 Python 中通过类decorator 添加到类中

缺失时推断的数据类可选字段

matplotlib.pyplot 多边形,具有相同的纵横比和紧凑的布局

Python rolling_corr 取消后,应该用什么方法来处理

二进制文件的 Python 3 和 base64 编码

如何在 Spyder 控制台中使用变量执行 Python 3.3 脚本?

Python3 mysqlclient-1.3.6(又名 PyMySQL)的用法?

所有 Python dunder 方法的列表 - 您需要实现哪些方法才能正确代理对象?

通过多个键对字典列表进行分组和聚合

python - 使用 matplotlib 和 boto 将绘图从内存上传到 s3

向 Python 函数添加属性的最佳方法

为什么异步库比这个 I/O 绑定操作的线程慢?

python asyncio add_done_callback 与 async def