【问题标题】:Unable to iterate through a list -pyPDF2无法遍历列表-pyPDF2
【发布时间】:2018-08-10 04:07:20
【问题描述】:

运行下面的代码在pdfReader行抛出错误

pdf=['/somepath/a.pdf','/somepath/b.pdf']

for count in range(len(pdf)):
    name=pdf[count]
    pdfFileObj = open(name, 'rb')
    pdfReader = PyPDF2.PdfFileReader(pdfFileObj) #Error at this line
    pages=pdfReader.numPages

错误- PdfReadWarning:外部参照表不是零索引的。对象的 ID 号将被更正。 [pdf.py:1736]

但是,当我像这样传递下面的 pdf 位置时,它的工作原理,但我需要一个循环,以便可以使用每个 pdf..

pdfFileObj = open(pdf[0], 'rb')

即使我尝试过看起来像,但它再次在 PdfReader 失败

for p in pdf:
    pdfFileObj = open(p, 'rb')

【问题讨论】:

  • 你的循环的第二种形式更像pythonic
  • 索引零起作用的事实只是意味着它在第二个文件上失败
  • Thanks@MadPhysicist 。所以,如果 strict=False 将被传递,它将是 Fixed ,正确的,

标签: python python-3.x list pypdf pypdf2


【解决方案1】:

根据this site,这个错误意味着外部参照表的第一部分不是以对象零开始的。您可以通过传递选项strict = false 来克服这个问题,PyPDF2 将自动更正对象 ID 号。通常这不是什么大问题,Adobe 仍会阅读您的 PDF。干杯。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-19
    • 2023-03-06
    • 1970-01-01
    • 1970-01-01
    • 2019-02-26
    • 2021-09-07
    • 1970-01-01
    • 2019-08-08
    相关资源
    最近更新 更多