python-pypdf 基于页面范围列表拆分 pdf

python-pypdf split pdf based a list of page ranges

我正在尝试根据名称列表和页面列表拆分大型 pdf。例如名字有三页,第二个有一页,第三个有五页等等。我创建了以下脚本,但它无法正常工作。例如,当 pdf 拆分第一个是正确的三页时,第二个有四页它应该只有一页,第三个有九页它应该有五页等等最后一个 pdf 有所有页面它应该有一个页。我错过了什么?

for arry, name in zip(pglist, deptNames5):
    for page in arry:
        pagenumber = pdfDoc.getPage(page)
        NewPdf.addPage(pagenumber)
        with open(name + b'.pdf', 'wb') as f:
            NewPdf.write(f)

我认为这段代码的正确版本应该是

for arry, name in zip(pglist, deptNames5):
    NewPdf = PdfFileWriter()
    for page in arry:
        pagenumber = pdfDoc.getPage(page)
        NewPdf.addPage(pagenumber)
    with open(name + b'.pdf', 'wb') as f:
        NewPdf.write(f)