给大家推荐一下400多种AI大模型聚合-向量引擎提供API接口调用网址:api.vectorengine.ai/
大家好!之前分享过 PyPDF2 处理 PDF 的基础用法,后台很多小伙伴问 “如何批量处理文件夹里的 PDF?”“遇到加密文件报错怎么解决?”。今天就带大家解锁 Python 处理 PDF 的进阶技巧,从批量操作到异常处理,再到工具选型对比,手把手教你搞定复杂场景,让办公效率再上一个台阶!
一、批量处理:1 行代码搞定文件夹内所有 PDF
日常工作中,我们常需要处理整个文件夹的 PDF(比如批量提取合同文本、统一旋转扫描件)。手动逐个操作效率极低,用 Python 只需几行代码就能实现自动化。
场景 1:批量合并文件夹内所有 PDF
假设要将 “2025 季度报告” 文件夹里的所有 PDF 按文件名顺序合并,代码如下:
pyth取消自动换行复制
from PyPDF2 import PdfMerger
场景 2:批量提取文件夹内 PDF 文本到 TXT
如果需要将多个 PDF 的文本提取到对应 TXT 文件(如 “合同 1.pdf”→“合同 1.txt”),代码可这样写:
pytho取消自动换行复制
from PyPDF2 import PdfReader
二、避坑指南:3 类常见异常处理方案
用 PyPDF2 处理 PDF 时,加密文件、损坏文件、图片型 PDF 是高频 “坑点”,学会异常处理才能让脚本稳定运行。
- 加密文件:解密后再处理
遇到 “EncryptedFileError” 报错,说明 PDF 被加密,需先解密(需知道密码):
python取消自动换行复制
from PyPDF2 import PdfReader
- 损坏文件:跳过或标记异常
部分 PDF 因传输或保存问题损坏,可通过 try-except 捕获异常并标记:
python取消自动换行复制
def safe_process_pdf(pdf_path):
- 图片型 PDF:结合 OCR 工具提取文本
PyPDF2 无法提取图片中的文字(如扫描件),需搭配 pytesseract 实现 OCR 识别:
python取消自动换行复制
先安装依赖:pip install pytesseract pillow
三、工具选型:3 个主流 PDF 处理库对比
除了 PyPDF2,Python 还有 pdfplumber 和 PyMuPDF 两个常用库,不同场景适合不同工具:
| 特性 | PyPDF2 | pdfplumber | PyMuPDF(fitz) |
|---|---|---|---|
| 核心优势 | 轻量、合并拆分功能稳定 | 文本提取精准(保留格式) | 速度快、支持 OCR 预处理 |
| 文本提取能力 | 一般(复杂格式易乱) | 优秀(可提取表格) | 良好 |
| 图片 / 扫描件处理 | 不支持 | 不支持 | 支持(转为图片) |
| 加密文件支持 | 支持基础解密 | 支持基础解密 | 支持多种加密算法 |
| 推荐场景 | 批量合并 / 拆分 | 文本 / 表格精准提取 | 高速处理、OCR 前置 |
选型建议:
- 简单合并拆分 → 用 PyPDF2(轻量无依赖);
- 提取合同中的表格数据 → 用 pdfplumber;
- 处理大量 PDF 或需要 OCR → 用 PyMuPDF。
四、实战案例:打造 PDF 自动化处理工具
结合以上技巧,我们可以打造一个 “PDF 工具箱” 脚本,支持合并、提取、OCR 三大功能,通过命令行调用:
python取消自动换行复制
import argparse
使用示例:
bash取消自动换行复制
1. 合并"报告文件夹"到"总报告.pdf"
五、总结与拓展
通过本文的进阶技巧,你可以:
- 用批量处理脚本替代重复手动操作,节省 80% 时间;
- 用异常处理让脚本更稳定,避免因个别文件报错中断;
- 根据场景选择合适工具,兼顾效率与效果。
后续还可以尝试这些拓展方向:
- 结合 tkinter 或 PyQt 给脚本加图形界面,让非技术同事也能使用;
- 对接云存储(如阿里云 OSS),实现云端 PDF 批量处理;
- 加入定时任务(如 schedule 库),每天自动处理指定文件夹的 PDF。
如果在实践中遇到问题,欢迎在评论区留言讨论!觉得有用的话,别忘了点赞 + 收藏,也可以分享给需要的同事~