如何用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("所有文件拆分完成")
使用说明
- 把代码里的
INPUT_PDF值替换为你要拆分的PDF的实际路径 - 运行代码后会在同目录下生成
拆分结果文件夹,所有拆分后的文件都保存在这里 - 383页的PDF运行后会自动生成39个文件:前38个每个包含10页,最后1个包含3页,无需额外做边界处理
内容的提问来源于stack exchange,提问作者Sam Oberly
相关产品推荐
相关产品推荐

