Python编程实战 - Python实用工具与库 - 操作PDF:pdfplumber、PyPDF2
PDF 是办公场景中最常见的文档格式之一。无论是发票、报告、电子合同还是扫描件,我们经常需要对 PDF 进行 读取、提取文本、拆分、合并 等操作。
幸运的是,Python 提供了多种优秀的库来完成这些任务,其中pdfplumber和PyPDF2是最常用的两种。
本文将带你掌握它们的使用方法与实战技巧。
一、两大PDF库的区别
| 功能 | pdfplumber | PyPDF2 |
|---|---|---|
| 提取文本 | ✅ 支持文字与表格结构 | ✅ 支持,但格式较乱 |
| 提取表格 | ✅ 强大,结构清晰 | ❌ 不支持 |
| 拆分/合并PDF | ❌ 不支持 | ✅ 支持 |
| 加密/解密 | ❌ | ✅ 支持 |
| 生成新PDF | ❌ | ✅ 可简单生成 |
| 适合场景 | 数据提取、内容分析 | 文件操作、批处理管理 |
在实战中,通常两者 配合使用:
- 用
pdfplumber提取文本或表格内容; - 用
PyPDF2拆分、合并或修改 PDF 文件结构。
二、pdfplumber:精准提取PDF文本与表格
1. 安装
pip install pdfplumber
2. 提取全部文本
import pdfplumberwith pdfplumber.open("example.pdf") as pdf:all_text = ""for page in pdf.pages:all_text += page.extract_text() + "\n"
print(all_text)
输出示例:
Python 实战报告
作者:张三
日期:2025-11-10
内容:这是一个示例PDF文件。
pdfplumber 能准确识别文字位置,输出比 PyPDF2 更整齐。
3. 提取单页文本
with pdfplumber.open("example.pdf") as pdf:page = pdf.pages[0]text = page.extract_text()print(text)
可以用 page.extract_words() 获取每个单词的位置信息,非常适合文字坐标分析。
4. 提取表格内容
pdfplumber 对表格提取特别强大,它能直接将表格结构转为 Python 列表。
