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

如何在python中使用PyPDF2每4页拆分一个PDF?,python,python-3.x,pdf,pypdf2,Python,Python 3.x,Pdf,Pypdf2,在线找到一个将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(in

在线找到一个将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()
#/usr/bin/env蟒蛇3
从PyPDF2导入PdfileWriter、PdfileReader
导入glob,sys
pdf=glob.glob(“*.pdf”)
pdf格式的pdf文件:
inputFile=PdfileReader(打开(pdf,“rb”))
对于范围内的i(inputFile.numPages//2):
输出=PdfileWriter()
output.addPage(inputFile.getPage(i*2))
如果i*2+1
在逐行理解代码的工作原理后,我能够想出一个解决方案,尽管我相信它仍然可以改进,但它得到了我需要的结果。在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()
#/usr/bin/env蟒蛇3
从PyPDF2导入PdfileWriter、PdfileReader
导入glob,sys
pdf=glob.glob(“*.pdf”)
pdf格式的pdf文件:
inputFile=PdfileReader(打开(pdf,“rb”))
对于范围内的i(0,inputFile.numPages,2):
输出=PdfileWriter()
output.addPage(inputFile.getPage(i*2))
output.addPage(inputFile.getPage(i*2+1))
output.addPage(inputFile.getPage(i*2+2))
如果i*2+3
您已经尝试过更改数字了吗?是的,我尝试过将所有数字更改为4,但仍然将其拆分为2页,我还尝试了其他数字的组合,但也不起作用。如果可用,则单个
if
只会添加一页。