使用PyPDF2从PDF文件提取文本

时间:2019-10-22 19:12:06

标签: python-3.x pypdf2

这是我在这里的第一个问题,因此如果它在错误的位置出现或者我错过任何有价值的信息,我深表歉意。一般而言,我对编码和python还是非常陌生的。

我正在使用Python 3.7.4(v3.7.4:e09359112e,2019年7月8日,14:54:52)

我正在尝试编写一些代码,该代码将从PDF文件中提取所有文本并将其放入一个值(我知道,简单的东西!)。

我已经设法使它在一页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 个答案:

答案 0 :(得分:0)

每次迭代都重置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)]