You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python从多个PDF文件中批量提取第6页并另存为新文件

问题修复与可运行代码

原代码存在的问题

  • 路径格式错误:Windows系统下路径中的单反斜杠是转义字符,会导致路径读取失效,同时PDF匹配规则应为*.pdf而非*pdf
  • 语法错误:保存文件的代码行引号不配对,路径拼接逻辑错误,无法正确生成目标文件路径
  • 逻辑遗漏:提取到的第6页没有添加到PdfFileWriter对象中,输出的文件会是空文件
  • 冗余操作:with上下文管理器会自动关闭文件,不需要手动调用f.close()
  • 额外风险:如果目标文件夹不存在会直接报错,需要提前做存在性判断

修正后完整代码

from PyPDF2 import PdfFileReader, PdfFileWriter
import os
import glob

# 按需修改以下三个参数即可
source_dir = "C:/你的原PDF文件夹路径"  # 路径用正斜杠或者双反斜杠都可以
target_dir = "C:/你的输出文件夹路径"
file_prefix = "提取页_"  # 自定义文件名前缀

# 自动创建目标文件夹(如果不存在)
os.makedirs(target_dir, exist_ok=True)

# 匹配原文件夹下所有PDF文件
pdf_list = glob.glob(os.path.join(source_dir, "*.pdf"))
file_index = 1

for pdf_path in pdf_list:
    # 读取原PDF
    input_pdf = PdfFileReader(open(pdf_path, "rb"))
    # 提取第6页(索引从0开始,所以对应序号5)
    page_6 = input_pdf.getPage(5)
    # 写入新PDF
    pdf_writer = PdfFileWriter()
    pdf_writer.addPage(page_6)
    # 生成新文件路径 格式:前缀+序号.pdf
    new_file_name = f"{file_prefix}{file_index}.pdf"
    new_file_path = os.path.join(target_dir, new_file_name)
    # 保存文件
    with open(new_file_path, "wb") as f:
        pdf_writer.write(f)
    file_index += 1

使用时只需要修改代码开头三个参数对应的路径和文件名前缀即可,运行后会自动遍历原文件夹下所有PDF,提取第6页按序号命名保存到目标文件夹。

内容的提问来源于stack exchange,提问作者Monica

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 06:39:00