为什么选择Python处理PDF
日常工作中,很多人要和PDF文件打交道。比如整理合同、合并报表、提取发票信息,甚至只是把几个PDF拼成一个。手动操作不仅慢,还容易出错。这时候,写个Python脚本就能省下大把时间。
Python有丰富的库支持PDF操作,像PyPDF2、pdfplumber、reportlab等,几乎能覆盖所有常见需求。而且语法简单,哪怕只学过基础,也能快速上手。
安装必要的库
开始前先装好工具。最常用的是PyPDF2,用来合并、拆分、加密PDF;pdfplumber适合提取文本和表格内容。用pip命令安装:
pip install PyPDF2 pdfplumber合并多个PDF文件
比如你有一堆课程资料,每章一个PDF,想合成一本完整的电子书。手动拖拽太麻烦,脚本几秒搞定。
import os
from PyPDF2 import PdfWriter, PdfReader
merger = PdfWriter()
for filename in os.listdir('./pdfs'):
if filename.endswith('.pdf'):
file_path = os.path.join('./pdfs', filename)
merger.add_page_from_pdf(PdfReader(file_path))
with open('merged_output.pdf', 'wb') as output:
merger.write(output)
merger.close()这段代码会把pdfs文件夹里所有PDF按文件名顺序合并成一个新文件。如果你希望按特定顺序排,可以把文件名列表手动排序。
提取PDF中的文字
有时候需要从PDF里抓数据,比如每月的水电费账单都是PDF格式,你想统计一年花了多少钱。用pdfplumber可以精准提取文本。
import pdfplumber
with pdfplumber.open('bill_2024_06.pdf') as pdf:
page = pdf.pages[0]
text = page.extract_text()
print(text)输出可能是:
“用户编号:12345678
用电量:235 kWh
金额:187.60元”
接下来就可以用字符串处理或正则表达式把数字抓出来,导入Excel做分析。
给PDF添加密码保护
发文件时担心泄露?加个密码很简单。还是用PyPDF2:
from PyPDF2 import PdfReader, PdfWriter
reader = PdfReader('draft.pdf')
writer = PdfWriter()
for page in reader.pages:
writer.add_page(page)
writer.encrypt('your_password')
with open('secured_draft.pdf', 'wb') as output:
writer.write(output)生成的PDF打开时就需要输入密码。别人没钥匙就别想看了。
批量重命名并分类PDF
如果你下载了一堆银行对账单,名字全是随机字符,管理起来头疼。可以写个脚本读取每份文件的日期信息,然后自动重命名。
结合提取文字和os.rename,实现自动化归档。比如把“ACME_202406.pdf”改成“银行对账单_2024-06.pdf”,再移动到对应年月的文件夹。
这种小脚本一次写好,以后每个月都能用,再也不用手动改名。
小技巧提醒
处理PDF时注意编码问题,尤其是中文文本。有些PDF是扫描件,本质是图片,不能直接提取文字。这时候得靠OCR工具配合,比如pytesseract + pdf2image。
另外,操作前最好备份原文件。万一脚本出错,不至于丢数据。
实际用起来你会发现,很多重复性的文档工作,其实只需要十几行代码就能解决。花半小时学点Python脚本,可能为你省下未来几十个小时。