Использование PyPDF2 для объединения файлов в несколько выходных файлов

Вот блок кода, который вызывает проблему. Цикл будет каждый раз добавлять новый файл, а это не то, чего я пытаюсь достичь. Например, outputfile1 - это input1.pdf, outputfile2 - это input1.pdf + input2.pdf...

Я пытаюсь объединить файл 1x.pdf с файлами 1a.pdf + 1b.pdf + 1c.pdf в выходной файл file.pdf, а затем выполнить цикл и сделать то же самое для 2, 3 и 4. Конечный результат должен быть 4 отдельных файла. Что мне не хватает? Ясно как грязь? Спасибо заранее за любую помощь.

i = 1

while i < 5:
    # files to be merged

    input1 = open(Path1+str(i)+"x.PDF", "rb")
    input2 = open(Path2+str(i)+"a.PDF", "rb")
    input3 = open(Path2+str(i)+"b.PDF", "rb")
    input4 = open(Path2+str(i)+"c.PDF", "rb")

    # output files
    output_file = open("/NewFile"+str(i)+".pdf", "wb")

    # add input1 document to output
    merger.append(fileobj = input1, pages = (0, 3, 2), import_bookmarks = False)

    # insert the pages of input2 into the output beginning after the second page
    merger.append(input2)

    # insert the pages of input3 into the output beginning after the second page
    merger.append(input3)

    # insert the pages of input4 into the output beginning after the second page
    merger.append(input4)

    # Write to an output PDF document
    merger.write(output_file)
    output_file.close()

    i += 1

1 ответ

Воскрешая супер старый вопрос, но столкнулся с этим и хотел ответить, чтобы, надеюсь, не дать другим людям вставить ваш частичный код выше и столкнуться с той же проблемой.

Не видя остального, я только догадываюсь, но твой цикл не создает нового mergerон просто продолжает добавлять, добавлять и добавлять, о чем вы и сообщаете в качестве проблемы. Я ожидаю, что если вы введете свой код инициализации слияния в цикл (чтобы он переустанавливался на каждой итерации), у вас будет то, что вы ищете.

Другие вопросы по тегам