Как разделить только первую страницу в каждом файле PDF из каталога, в котором есть несколько файлов? - PullRequest
0 голосов
/ 05 августа 2020

Я создал два каталога с именами ввода и вывода. Входной каталог содержит более одного файла PDF, и каждый файл состоит из нескольких страниц. Я пытаюсь получить первую страницу каждого файла PDF, и ее нужно сохранить в выходном каталоге. Ниже приведен код, который я пытаюсь импортировать в ОС

from PyPDF2 import PdfFileWriter, PdfFileReader

in_path = "D:/data/input/"
out_path = "D:/data/output/"

output = PdfFileWriter()
pages_to_keep = [0]

in_files = (f for f in os.listdir(in_path) if os.path.isfile(f) and f.endswith('.pdf'))



for file in in_files:
    po = open(file, 'rb')
    rd = PdfFileReader(po, strict=False)
    for i in pages_to_keep:
        page = rd.getPage(i)
        output.addPage(page)
    with open(out_path+str(file), 'wb') as f:
        output.write(f):

Проблема: когда я выполняю сценарий, который сохраняет выходной файл1, имеющий 1 страницу, и выходной файл2, имеющий 2 страницы, третий файл имеет три страницы. Но мне нужна только первая страница из всех файлов PDF. Как решить эту проблему.

1 Ответ

1 голос
/ 05 августа 2020

Вам необходимо сбросить вывод для каждого файла:

for file in in_files:
    output = PdfFileWriter()  # clear output
    po = open(file, 'rb')
    rd = PdfFileReader(po, strict=False)
    for i in pages_to_keep:
        page = rd.getPage(i)
        output.addPage(page)
    with open(out_path+str(file), 'wb') as f:
        output.write(f):
...