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

使用PyPDF2拆分PDF为单页文件时遇异常,请求技术帮助

解决PyPDF2拆分PDF为单页文件的问题

我来帮你排查下代码的问题!你的逻辑里有个关键疏漏:每次循环都在同一个pdf_writer对象里累加页面,没有重置写入器,导致生成的文件会包含前面所有页面——比如Sample_2.pdf实际是第1+2页,Sample_3.pdf是1+2+3页,这和你要拆分出独立单页的需求不符。

修正后的代码

from PyPDF2 import PdfFileReader, PdfFileWriter

# 打开源PDF文件
pdf_file = open('Sample.pdf', 'rb')
pdf_reader = PdfFileReader(pdf_file)
page_numbers = pdf_reader.getNumPages()

for i in range(page_numbers):
    # 关键:每次循环创建新的PdfFileWriter实例,避免页面累积
    pdf_writer = PdfFileWriter()
    # 添加当前遍历到的单页
    pdf_writer.addPage(pdf_reader.getPage(i))
    # 写入并保存当前单页的PDF文件
    with open(f'Sample_{i+1}.pdf', 'wb') as split_file:
        pdf_writer.write(split_file)

# 关闭源文件
pdf_file.close()

改动说明

  • 把pdf_writer = PdfFileWriter()移到了for循环内部,确保每次循环都生成一个全新的写入器对象,只加载当前需要拆分的单页。
  • 改用with语句来处理输出文件,它会自动帮你关闭文件,比手动调用close()更安全简洁。
  • 变量名改成了更符合PEP8规范的page_numbers,可读性更好。

运行这段修正后的代码,就能得到三个分别包含第1、2、3页的独立PDF文件啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:44:39