好睿思指南
霓虹主题四 · 更硬核的阅读氛围

用Python脚本轻松搞定PDF处理

发布时间:2025-12-10 02:13:26 阅读:89 次

为什么选择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脚本,可能为你省下未来几十个小时。