乐于分享
好东西不私藏

别再手动合并PDF了!用Python 3行代码完成(附拆分)

别再手动合并PDF了!用Python 3行代码完成(附拆分)

30个PDF要合并?200页的合同要拆成小份?还在手动拖拽?

两段代码,彻底告别这种苦力活。

准备工作

安装好python3.*版本,然后在命令窗口中安装pypdf库(输入如下命令按回车键):

提醒:老教程的 PyPDF2 已停更,用pypdf

一、合并PDF:N个变1个

下图是我要合并的6个pdf,每个pdf有3页。

1.新建merge_pdf.py,代码如下:

from pypdf import PdfWriter, PdfReaderfrom pathlib import Path# 存放所有PDF的文件夹folder_path = "pdfs"# 输出文件名output_file = "./合并结果.pdf"writer = PdfWriter()# 获取所有PDF文件,按文件名排序for pdf_path in sorted(Path(folder_path).glob("*.pdf")):      reader = PdfReader(pdf_path)      for page in reader.pages:            writer.add_page(page)writer.write(output_file)writer.close()print(f"✅ 合并完成!共 {len(writer.pages)} 页 → {output_file}")
2.运行脚本文件:
即在命令行输入:python merge_pdf.py。运行后结果如下:

二、拆分PDF:1个变N个

“大文件”拆分前,文件如下:

1.

1.新建split_pdf.py文件,代码如下:

from pypdf import PdfReader, PdfWriterreader = PdfReader("./合同大文件.pdf")pages_per = 2  # 每个文件多少页for start in range(0len(reader.pages), pages_per):      writer = PdfWriter()      end = min(start + pages_per, len(reader.pages))      for num in range(start, end):            writer.add_page(reader.pages[num])      part = start // pages_per + 1      writer.write(f"./合同大文件_第{part}部分.pdf")      writer.close()print("拆分完成")

print("拆分完成") 

200页拆成20份,3秒完事。 拆分后,如下图:

三、常见问题

四、⚠️ 遇到加密PDF报错?

报错提示 cryptography is required: 方法:在命令窗口中输入如下命令并回车: pip install cryptography 装完重新运行即可。

写在最后

手动处理PDF是典型的低价值重复劳动。

收藏这篇文章,下次直接复制粘贴。

下期写什么?你来定! 

⭕ 批量加水印

⭕ 提取指定页面

⭕ 图片转PDF

⭕ 按章节自动拆分

评论区告诉我,点赞最高的先写!