如何从具有多个文件的目录中仅拆分每个 pdf 文件中的第一页?

How to split only first page in each pdf file from directory that has muliple files?

我创建了两个具有输入和输出名称的目录。输入目录有多个 PDF 文件,每个文件有多个页面。我正在尝试获取每个 PDF 文件的第一页,并且应该保存在输出目录中。 下面是我正在尝试导入的代码 os

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 文件的第一页。 如何解决这个问题。

您需要为每个文件重置输出:

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):