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

我正在尝试使用 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 io


from pdfminer.converter import TextConverter

from pdfminer.pdfinterp import PDFPageInterpreter

from pdfminer.pdfinterp import PDFResourceManager

from pdfminer.pdfpage import PDFPage


def 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 text


if __name__ == '__main__':

    s = extract_text_from_pdf('mypdf.pdf')


梦里花落0921
浏览 136回答 1
1回答

森林海

答:这段代码可以正常工作。不知道如何帮助你。您收到的错误信息是什么?您的 .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)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python