嗨,亲爱的小伙伴们!今天,让我们一起来揭开Python中PDF加密的神秘面纱吧!不要小看这个小小功能,它可是能给你的PDF文档加上一道坚不可摧的“保护伞”,让你的文件安全隐私有了更多的守护。现在就让我来向你展示Python是如何轻松实现批量PDF加密的!
使用PyPDF2库:安全加密不是事儿!
若没有安装PyPDF2库,记得先通过下面的命令安装一下哦:
pip install PyPDF2
代码如下:
from PyPDF2 import PdfReader, PdfWriter
from pathlib import Path
import os
import glob
def encrypt_pdfs(input_folder_path, output_folder_path, user_password, owner_password):
input_folder = Path(input_folder_path)
output_folder = Path(output_folder_path)
output_folder.mkdir(parents=True, exist_ok=True)
input_files = glob.glob(os.path.join(input_folder, "*.pdf"))
for file in input_files:
file_name = os.path.basename(file)
with open(file, "rb") as file_read:
reader = PdfReader(file_read)
writer = PdfWriter()
for page in reader.pages:
writer.add_page(page)
# 使用提供的密码加密PDF
writer.encrypt(user_password=user_password, owner_password=owner_password, use_128bit=True)
output_file_name = os.path.join(output_folder, file_name)
with open(output_file_name, "wb") as file_write:
writer.write(file_write)
# 示例用法
encrypt_pdfs("C:/Users/olive/Desktop/待加密的PDF",
"C:/Users/olive/Desktop/已加密的PDF",
"abdc1234",
"1234abcd")
代码解析
1.首先导入了PyPDF2库中的PdfReader和PdfWriter类,以及pathlib库中的Path类,os库和glob库。
2.然后定义了一个名为encrypt_pdfs的函数,该函数接受四个参数:
- input_folder_path(输入文件夹路径)
- output_folder_path(输出文件夹路径)
- user_password(用户密码)
- owner_password(所有者密码)3.在函数内部,首先将输入和输出文件夹路径转换为Path对象,并创建输出文件夹(如果不存在的话)。
4.使用glob模块获取输入文件夹中的所有PDF文件,并对每个文件进行以下操作:
- 读取文件内容,并创建PdfReader对象。
- 创建一个空的PdfWriter对象,并将每一页添加到写入对象中。
- 使用提供的用户密码和所有者密码以128位加密写入对象中的内容。
- 将加密后的PDF内容写入到输出文件夹中。5.最后,提供了一个示例用法,说明如何调用encrypt_pdfs函数来加密PDF文件。
激动人心的测试
我们先准备一批未加密的PDF文件,我准备的PDF的如下图所示:
接下来,记得改一下最后一行的测试代码,改成你自己的文件夹路径和密码哦:
# 示例用法
encrypt_pdfs("C:/Users/olive/Desktop/待加密的PDF",
"C:/Users/olive/Desktop/已加密的PDF",
"abdc1234",
"1234abcd")
接下来,要运行程序了,我的桌面上生成了如下的文件夹和文件:
我们随便打开一个文件:
果然,要求我们输入密码,此时,我们输入owner_password,我的话,就是1234abcd。
OK,成功打开了。
小结:
哇哦,Python轻松实现PDF加密的魔法不是很棒吗?希望通过这段代码,你也能让自己的PDF文档拥有更多的安全保护,保障隐私安全!
快来试试吧!相信你也能像小编一样变身为PDF数据的“守护神”哦!如果你对PDF操作还有其他想法,随时记得跟我分享哦!加密的世界里,没有什么秘密是我们搞不定的!🔒📄✨