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

使用PyPDF2拆分大PDF速度慢且输出文件过大的问题求助

PyPDF2拆分PDF时的速度与体积问题

我尝试用PyPDF2将一份数百页的PDF按每50页拆分为多个文件,代码如下:

import os
from PyPDF2 import PdfMerger, PdfReader, PdfWriter

def split_pdf(filename, pages_per_file):
    # split pdf file every P pages

    reader = PdfReader(open(filename, "rb"))
    onlyname = os.path.splitext(filename)[0]
    n = 1
    p0 = 0
    while p0 < (len(reader.pages)):
        writer = PdfWriter()  # writer case
        # writer = PdfMerger()  # merger case

        p1 = min(p0 + pages_per_file, len(reader.pages))

        for page in reader.pages[p0:p1]:
            writer.add_page(page)  # writer case

        # writer.append(reader, pages=(p0, p1))  # merger case

        with open("%s_%d.pdf" % (onlyname, n), "wb") as outfile:
            writer.write(outfile)

        print('write to %s_%d.pdf' % (onlyname, n))
        n += 1
        p0 = p1

split_pdf('path/to/file.pdf', 50)

测试了PdfMerger和PdfWriter两种实现方式后,统计各代码块耗时:

  • writer.add_page()耗时约0.01秒,速度较快
  • writer.append()耗时约30秒,writer.write()耗时20~30秒

现有两个疑问:

  1. 为什么writer.append()和writer.write()这两个方法的耗时会这么久?
  2. 生成的拆分文件体积几乎与原文件大小一致,但已确认每个文件确实只有50页,这是什么原因?

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 15:25:32