为了账号安全,请及时绑定邮箱和手机立即绑定

使用 print() 函数时 Python 不会显示文本

使用 print() 函数时 Python 不会显示文本

梦里花落0921 2022-10-18 17:35:09
我正在尝试使用 pdfminer。我找到了一个代码片段,我想在进一步检查之前尝试一下。此代码的目标是从 .pdf 中提取文本并将其存储在 str 对象中。它工作得很好,它从 pdf 文档中提取文本,当我尝试打印 str 时出现问题。它什么也不打印。str 确实包含文本,print(text[0:10])例如,我可以打印其中的一部分。它还将打印整个内容,print(text[0:len(s)-1])我也可以将其写入文件而不会出现任何问题。只有该print()功能不能单独工作。它是带有 utf-8 编码的标准 str 。当我将 .pdf 的内容写入字节对象,然后将其转换为 str 时,我得到了相同的结果。虽然 python 可以毫无问题地打印字节对象。这也不是 IDE 问题,我在 Spyder 和 VS Code 中都得到了相同的结果。任何建议都会受到欢迎。这是我使用的代码(如果我尝试打印变量 s,没有任何反应):import iofrom pdfminer.converter import TextConverterfrom pdfminer.pdfinterp import PDFPageInterpreterfrom pdfminer.pdfinterp import PDFResourceManagerfrom pdfminer.pdfpage import PDFPagedef extract_text_from_pdf(pdf_path):    resource_manager = PDFResourceManager()    fake_file_handle = io.StringIO()    converter = TextConverter(resource_manager, fake_file_handle)    page_interpreter = PDFPageInterpreter(resource_manager, converter)    with open(pdf_path, 'rb') as fh:        for page in PDFPage.get_pages(fh,                                       caching=True,                                      check_extractable=True):            page_interpreter.process_page(page)        text = fake_file_handle.getvalue()    converter.close()    fake_file_handle.close()    if text:        return textif __name__ == '__main__':    s = extract_text_from_pdf('mypdf.pdf')
查看完整描述

1 回答

?
森林海

TA贡献2011条经验 获得超2个赞

答:这段代码可以正常工作。


不知道如何帮助你。您收到的错误信息是什么?您的 .pdf 文件大小是多少?进程是否以退出代码 0 结束?该过程是否永远不会完成并且您必须终止?


我将您的代码放在 PyCharm 中,并在“复杂”pdf 和“简单”pdf 上运行。(在运行它之前我必须采取的唯一步骤是确保安装了 pdfminer,我假设你也这样做了。)


“复杂”的 pdf 花了很长时间(24 页带图形等)。Windows 任务管理器向我保证它正在运行。

“简单”的 pdf 需要几秒钟。

一些打印语句确认每一页都是“得到”的:


        for page in PDFPage.get_pages(fh, caching=True, check_extractable=True):

            print(type(page))

            print(page)


查看完整回答
反对 回复 2022-10-18
  • 1 回答
  • 0 关注
  • 133 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信