遍历列表-'int'对象不可下标

时间:2018-08-18 12:21:45

标签: python pypdf2

我已经使用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)

2 个答案:

答案 0 :(得分:1)

没有看到更多代码,如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循环更深。

答案 1 :(得分:0)

我假设writerPdfFileWriter对象。在这种情况下,您必须将从pfr检索到的页面传递给writer.addPage方法,而不是传递整数。

for i in pfr.pages:
    writer.addPage(i)