我正在尝试从pdf文件中获取文本。代码如下:
from PyPDF2 import PdfFileReader
with open('HTTP_Book.pdf', 'rb') as file:
pdf = PdfFileReader(file)
page = pdf.getPage(1)
#print(dir(page))
print(page.extractText())
这给了我错误
^{pr2}$我只需将代码放在with
语句下,就可以正常工作了。我的问题是:为什么会这样?我已经将信息存储在“pdf”对象中,因此我应该能够在块外访问它。在
^{} 需要一个可查找的、开放的、蒸汽。它不会将整个文件加载到内存中,因此您必须保持打开状态才能运行方法,如^{} 。你认为创建一个读卡器会自动读取整个文件的假设是不正确的。在
^{} 语句对context manager进行操作,例如文件。当
with
结束时,将调用上下文管理器的__exit__
方法。在本例中,它关闭PdfFildReader
试图用来获取第二页的文件句柄。在正如您所发现的,正确的步骤是在关闭文件之前从PDF中读取必须的内容。如果且仅当您的程序需要打开PDF文件直到最后,您可以将文件名直接传递给
PdfFileReader
。但是,在此之后没有(有文档记录的)关闭文件的方法,因此我建议您使用原始方法:相关问题 更多 >
编程相关推荐