无法遍历列表-pyPDF2

Posted

技术标签:

【中文标题】无法遍历列表-pyPDF2【英文标题】:Unable to iterate through a list -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 ,正确的, 【参考方案1】:

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

【讨论】:

以上是关于无法遍历列表-pyPDF2的主要内容,如果未能解决你的问题,请参考以下文章

使用 foreach 遍历列表

在c#中遍历通用类型列表

Python 3.5 遍历字典列表

Django:遍历模板中的过滤列表

使用 For Each 循环遍历列表时删除列表中的项目

Zip_longest Plus:遍历不同长度的列表[重复]