使用 Python 的 PDF 前三页提取器

PDF First Three Pages Extractor using Python

所以我尝试编写代码,当我将 pdf 文件的地址插入到下面的代码中时,它仅提取 pdf 的前 3 页并将其另存为(nameofthepdf_subset.pdf)。 但现在我想让文件夹中的每个 Pdf 都发生这种情况,我该如何实现?

这是我从 YouTube 频道获得的代码:

from PyPDF2 import PdfFileReader, PdfFileWriter

pdf_file_path = r"C:\Users885\OneDrive\Desktop\Python 3 Pages\IELTS.pdf"
file_base_name = pdf_file_path.replace('.pdf', '')

pdf = PdfFileReader(pdf_file_path)

pages = [0, 1, 2] # page 1,2,3
pdfWriter = PdfFileWriter()

for page_num in pages:
    pdfWriter.addPage(pdf.getPage(page_num))

with open('{0}_subset.pdf'.format(file_base_name), 'wb') as f:
    pdfWriter.write(f)
    f.close()

此代码工作正常,但仅适用于单个 pdf,如何在其中插入我的文件夹地址。

这是将给定文件夹中所有 pdf 的前 3 页保存在不同 pdf 中的代码

from PyPDF2 import PdfFileReader, PdfFileWriter
import os

for file in os.listdir("path_to_foler"):

    file_base_name = file

    pdf = PdfFileReader(f'path_to_foler/{file}')

    pages = [0, 1, 2]  # page 1,2,3
    pdfWriter = PdfFileWriter()

    for page_num in pages:
        pdfWriter.addPage(pdf.getPage(page_num))

    with open(f'{file_base_name}_subset.pdf', 'wb') as f:
        pdfWriter.write(f)

一个提示,当您with open("file","mode") as file:不需要关闭文件时,with 语句会在内部代码完成后自动关闭数据流