删除pdf的每第n页

时间:2016-04-06 18:57:25

标签: python pdf pypdf

我是python的新手,我试图从一个非常大的pdf文件(如10,000多页)中删除每个第3页。目前我只能在缩略图视图中查看pdf,然后拖动以选择第三列中的每个页面,然后点击删除。显然,这是一种非常手动的方式,它经常使计算机崩溃等等......我想我应该能够用代码做到这一点吗?我环顾四周,发现了一些类似的主题,但我似乎无法修改代码工作。现在我正在使用pyPDF模块。 (我知道那里有一个pyPDF2模块,但我认为pyPDF应该没问题。如果不是,我很乐意改变。)这是我到目前为止所做的:

from pyPdf import PdfFileWriter, PdfFileReader

doc = "TEST_IN.pdf"
inputpdf = PdfFileReader(open(doc,"rb"))
output = PdfFileWriter()
n = 3

for i in xrange(inputpdf.numPages):
    if i % 3 != 0
        output.addPage(inputpdf.getpage(i))

with open ("document-page%s.pdf" % i, "wb") as outputStream:
    output.write(outputStream)

现在我在声明中遇到语法错误:if i%3!= 0

任何人都可以帮我修复代码吗?提前致谢。我感谢所有在这个网站上提供帮助的人。

2 个答案:

答案 0 :(得分:0)

:ifwhile之类的所有条件语句之后,您只需要一个冒号else。您已经在for循环和with语句中正确执行此操作,但在if i % 3 != 0中也需要它。

from pyPdf import PdfFileWriter, PdfFileReader

doc = "TEST_IN.pdf"
inputpdf = PdfFileReader(open(doc,"rb"))
output = PdfFileWriter()
n = 3

for i in xrange(inputpdf.numPages):
    if i % 3 != 0:
        output.addPage(inputpdf.getpage(i))

with open ("document-page%s.pdf" % i, "wb") as outputStream:
    output.write(outputStream)

答案 1 :(得分:0)

您只是忘记了if语句末尾的冒号。

将该行更改为

if i % 3 != 0: