Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么可以';我使用切片表示法来使用pyPDF迭代页面_Python_Python 2.7_Slice_Pypdf - Fatal编程技术网

Python 为什么可以';我使用切片表示法来使用pyPDF迭代页面

Python 为什么可以';我使用切片表示法来使用pyPDF迭代页面,python,python-2.7,slice,pypdf,Python,Python 2.7,Slice,Pypdf,我正在运行以下代码来创建一个新的PDF文件,其中包含除源PDF的第一页以外的所有内容: import os from pyPdf import PdfFileReader, PdfFileWriter inputFile = PdfFileReader(file("/path/to/file", "rb")) outputPDF = PdfFileWriter() for page in inputFile.pages[1:]: outputPDF.addPage(page) outp

我正在运行以下代码来创建一个新的PDF文件,其中包含除源PDF的第一页以外的所有内容:

import os
from pyPdf import PdfFileReader, PdfFileWriter

inputFile = PdfFileReader(file("/path/to/file", "rb"))
outputPDF = PdfFileWriter()
for page in inputFile.pages[1:]:
    outputPDF.addPage(page)
outputFile = open("/path/to/output/file", "wb")
outputPDF.write(outputFile)
outputFile.close()
当我尝试运行此程序(Python 2.7.6)时,会引发以下异常:

for page in inputFile.pages[1:]:
TypeError: sequence indices must be integers
如果我停止使用切片表示法,只对inputFile.pages:中的页面使用
,我不会得到任何异常


我是做错了什么,还是仅仅是pyPdf库中的一个bug?

显然,他们没有设置
\uuuu getitem\uuuu
方法来处理切片——只处理整数。在您的情况下,您可以使用
itertools.islice
获得包含所需页面的iterable。

很好!我在尝试自学Python时使用了这个库,所以尽管我觉得这是实现中的一个问题,但我对它没有信心。我不知道itertools,我会查一查。谢谢看看,我们可以看到它们只支持整数。这有点问题(我认为他们至少应该支持
long
。以一种干净的方式添加对切片的支持并不那么明显——尽管我相信这是可以解决的……我刚刚尝试了“itertools.islice”选项,效果非常好!FWIW,我刚刚添加了一个用于将切片添加到
inputFile.pages