使用 PyPDF2 从 PDF 文件中提取文本
Posted
技术标签:
【中文标题】使用 PyPDF2 从 PDF 文件中提取文本【英文标题】:Extracting text from a PDF file using PyPDF2 【发布时间】:2019-10-22 19:12:06 【问题描述】:这是我在这里的第一个问题,所以如果它最终出现在错误的地方或者我错过了任何有价值的信息,我深表歉意。总的来说,我对编码和 python 也非常陌生。
我正在使用 Python 3.7.4(v3.7.4:e09359112e,2019 年 7 月 8 日,14:54:52)
我正在尝试编写一些代码,从 PDF 文件中提取所有文本并将其放入一个值中(我知道,简单的东西!)。
我已经设法让它在 1 页 pdf 上正常工作,但是在尝试 96 页 PDF 时,我只能将第一页和最后一页提取到该值。这是我正在使用的代码:
pdfFile2 = open('/filepath/ir-2030.pdf', 'rb')
irReader = PyPDF2.PdfFileReader(pdfFile2)
pageNum2 = str(irReader.numPages)
print('Your document has ' + pageNum2 + ' pages' + '\n')
for pN in range(irReader.numPages):
ir2030 = irReader.getPage(pN).extractText()
print(ir2030)
我之前使用过几乎相同的编码,它可以正常工作,但由于我不知道的原因,我只从print(ir2030)
获得了 pdf 文档的第 1 页和第 96 页的返回
任何帮助将不胜感激,或者如果有更好的方法来做我想做的事情......
干杯
【问题讨论】:
【参考方案1】:每次迭代,您都会重置 ir2030
的值。也许将值附加到列表中?
ir2030s = []
for pN in range(irReader.numPages):
ir2030s.append(irReader.getPage(pN).extractText())
print(ir2030)
或者使用列表推导:
ir2030s = [irReader.getPage(pN).extractText() for pN in range(irReader.numPages)]
【讨论】:
以上是关于使用 PyPDF2 从 PDF 文件中提取文本的主要内容,如果未能解决你的问题,请参考以下文章
PyPDF2如何实现按照PDF页码提取后并另存为PDF格式文件?