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

如何用Python将PDF按每10页一组拆分(含剩余不足10页部分)

PyPDF2实现PDF按固定页数拆分方案

前置准备

首先安装依赖库,执行以下命令:
pip install PyPDF2

实现逻辑

  • 读取原始PDF文件,获取总页数
  • 以10页为步长遍历所有页码,自动适配最后不足10页的场景
  • 每一组对应生成一个独立的PDF文件,文件名标注对应页码范围便于识别

完整可运行代码

from PyPDF2 import PdfReader, PdfWriter
import os

# 可修改的配置项
INPUT_PDF = "待拆分的文件.pdf"  # 替换为你的PDF文件路径
SAVE_DIR = "拆分结果"
SPLIT_STEP = 10  # 每多少页拆分为一个文件

# 创建保存文件夹,已存在时不会报错
os.makedirs(SAVE_DIR, exist_ok=True)

# 加载原始PDF
pdf_reader = PdfReader(INPUT_PDF)
total_page_count = len(pdf_reader.pages)
print(f"待拆分PDF总页数:{total_page_count}")

# 开始拆分
for start_idx in range(0, total_page_count, SPLIT_STEP):
    # 计算当前拆分段的结束位置,超过总页数时自动取总页数
    end_idx = min(start_idx + SPLIT_STEP, total_page_count)
    pdf_writer = PdfWriter()
    # 写入当前段的所有页
    for page_idx in range(start_idx, end_idx):
        pdf_writer.add_page(pdf_reader.pages[page_idx])
    # 生成保存路径,文件名使用普通人习惯的从1开始的页码标注
    save_path = f"{SAVE_DIR}/拆分文件_第{start_idx+1}-{end_idx}页.pdf"
    with open(save_path, "wb") as f:
        pdf_writer.write(f)
    print(f"已生成:{save_path},包含{end_idx - start_idx}页")

print("所有文件拆分完成")

使用说明

  1. 把代码里的INPUT_PDF值替换为你要拆分的PDF的实际路径
  2. 运行代码后会在同目录下生成拆分结果文件夹,所有拆分后的文件都保存在这里
  3. 383页的PDF运行后会自动生成39个文件:前38个每个包含10页,最后1个包含3页,无需额外做边界处理

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.18 18:45:04