首页 > 解决方案 > 循环列表 - 'int' 对象不可下标

问题描述

我已经使用 PyPDF2 上传了一个 PDF。这是我的代码:

PageNo=list(range(0,pfr.numPages))

for i in PageNo:
    pg = writer.addPage(i)

PageNo 创建一个所有页码的列表,我试图将列表中的每一页添加到一个新的 PDF 中,但是当我运行这个脚本时,我得到 'int' 对象不可下标。我知道这是我的 for 循环中的一个错误,我确信这很明显,但是对我上面的错误的任何见解将不胜感激。

谢谢!

编辑 - 这是解决方案:

for i in list(range(0,pfr.numPages))
     pg = pfr.getPage(i)
     writer.addPage(pg)

标签: pythonpypdf2

解决方案


没有看到更多代码,比如 pfr.numPages 到底是什么?它是在哪里创建的?它是如何使用的?发生错误是因为PageNo被评估为int,因此它不太可能是您的 for 循环中的错误,更有可能是您的列表中的错误。假设pfr.numPages是某种类型的数组,试试这个:

for i in range(0, len(pfr.numPages)):
    pg = writer.addPage(prf.numPages[i])

但是,如前所述,如果PageNo被评估为 int,则 pfr.numPages 不是数组,也不是具有一个元素的数组。如果出现此错误,请密切注意跟踪,它会告诉您哪一行,如果它说 int 在带有 的行上不可下标prf.numPages,那么您就知道您的问题比这个 for 循环更深。


推荐阅读