如何在 python 中使用 PyPDF2 每 4 页拆分 PDF?

How to split a PDF every 4 pages using PyPDF2 in python?

在网上找到一个示例代码,将 pdf 分成 2 页,但无法将其更改为 4 页,任何提示将不胜感激

   #!/usr/bin/env python3

from PyPDF2 import PdfFileWriter, PdfFileReader
import glob, sys

pdfs = glob.glob("*.pdf")

for pdf in pdfs:
    inputFile = PdfFileReader(open(pdf, "rb"))
    for i in range(inputFile.numPages // 2):
        output = PdfFileWriter()
        output.addPage(inputFile.getPage(i * 2))

        if i * 2 + 1 < inputFile.numPages:
            output.addPage(inputFile.getPage(i * 2 + 1))

        newname = "-" + str(i) + ".pdf"
        outputStream = open(newname, "wb")
        output.write(outputStream)
        outputStream.close()

在逐行了解代码的工作原理后,我想出了一个解决方案,虽然我相信它仍然可以改进,但它让我得到了我需要的结果。在 for 循环中,我不得不将计数器增加 2,以避免在每个循环后在每个文件中重复相同的页面,并且我添加了几个 addPage 语句并且它起作用了。感谢 randomhacks.co.uk 提出我在问题中陈述的原始代码。欢迎任何改进。

#!/usr/bin/env python3

from PyPDF2 import PdfFileWriter, PdfFileReader
import glob, sys

pdfs = glob.glob("*.pdf")

for pdf in pdfs:
inputFile = PdfFileReader(open(pdf, "rb"))
for i in range(0, inputFile.numPages, 2):
    output = PdfFileWriter()
    output.addPage(inputFile.getPage(i * 2))
    output.addPage(inputFile.getPage(i * 2 + 1))
    output.addPage(inputFile.getPage(i * 2 + 2))

if i * 2 + 3  < inputFile.numPages:
    output.addPage(inputFile.getPage(i * 2 + 3))

newname = "pdf[:9]" +"-" + str(i) + ".pdf"

outputStream = open(newname, "wb")
output.write(outputStream)
outputStream.close()