我已经使用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)
答案 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)
我假设writer
是PdfFileWriter
对象。在这种情况下,您必须将从pfr
检索到的页面传递给writer.addPage
方法,而不是传递整数。
for i in pfr.pages:
writer.addPage(i)