自动化无聊的东西Ch13 PyPDF2:pdfReader未定义

时间:2018-07-31 00:27:15

标签: pypdf2

在尝试遵循本书上的说明时,我遇到了一个错误,我担心这是由于我对循环的理解不正确。我的代码如下。

#! Python3
import PyPDF2, os
# Loop through all the PDF files
for filename in pdfFiles:
    try:
        pdfFileObj = open(filename, 'rb') 
        pdfReader = PyPDF2.PdfFileReader(pdfFileObj)
    except FileNotFoundError:
        print('File not foungd ' + filename)
        pass

# Read through all the PDF files.
for pageNum in range(1, pdfReader.numPages):
    pageObj = pdfReader.getPage(pageNum)
    pdfWriter.addPage(pageObj)

=====

结果是:

Traceback (most recent call last):
  File "C:/…automate_py/combinesPdf.py", line 24, in <module>
    for pageNum in range(1, pdfReader.numPages):
NameError: name 'pdfReader' is not defined

有人知道为什么找不到pdfReader吗?非常感谢。

我尝试过调整缩进,但是似乎没有用。 :(

2 个答案:

答案 0 :(得分:0)

您犯了缩进错误。 arg2是在代码的第一个循环中定义的,因此第二个应该在该代码块中。这是该书上该示例的完整注释代码:

pdfReader

答案 1 :(得分:0)

有相同的问题(Python 3.x,Windows 10)。这对我有用:

from PyPDF2 import PdfFileReader

with open("C:/yourpdf.pdf", 'rb') as f:
    pdf = PdfFileReader(f)
    page = pdf.getPage(1)
    text = page.extractText()

print(text)