在很多情况下,我们需要对重要的PDF文件进行加密,以保护文件内容不被未授权的用户访问。手动给每个文件设置密码会非常耗时,特别是当我们有大量的PDF文件需要处理时。幸运的是,Python提供了一种自动化的解决方案。本文将介绍如何使用Python脚本批量给多个PDF文件加密。
导入必要的模块 📚
在我们的脚本中,我们将使用PyPDF2
库来处理PDF文件的加密。除此之外,我们还需要使用os
模块来遍历文件夹内的PDF文件,以及time
模块来在脚本执行完毕后暂停一段时间。
from time import sleep
import PyPDF2
import os
确保在开始之前已经安装了PyPDF2
库,如果没有安装,可以使用pip install PyPDF2
命令进行安装。
完整的代码示例与详细解释 🧾
接下来,我们将展示完整的Python脚本,并对每一部分进行详细的注释和解释。
# 打印软件信息,告知用户软件提供者信息
print("软件由 微信 Jimmie_ok 提供,有使用问题联系微信交流学习")
# 从用户那里获取需要加密的PDF文件所在文件夹的路径
path = input("请输入需要加密的PDF文件所在文件夹的路径:")
# 从用户那里获取加密密码
password = input("请输入加密密码:")
# 打印出输入的路径,以便确认
print(path)
# 初始化一个列表来存储所有PDF文件的路径
files = []
# 遍历指定路径下的所有文件
for file in os.listdir(path):
# 只处理以'.pdf'结尾的文件
if file.endswith('.pdf'):
# 将完整的文件路径添加到列表中
files.append(os.path.join(path, file))
# 打印出即将进行加密的PDF文件列表
print(files)
# 遍历文件列表,对每个PDF文件进行加密
for file in files:
# 打开PDF文件以读取内容
pdf_obj = open(file, 'rb')
# 创建一个PdfReader对象
pdf_reader = PyPDF2.PdfReader(pdf_obj)
# 创建一个PdfWriter对象,用于写入加密后的PDF内容
pdf_writer = PyPDF2.PdfWriter()
# 遍历PDF文件的每一页
for page_num in range(len(pdf_reader.pages)):
# 获取当前页的内容
page_obj = pdf_reader.pages[page_num]
# 将当前页添加到PdfWriter对象中
pdf_writer.add_page(page_obj)
# 使用指定的密码对PDF文件进行加密
pdf_writer.encrypt(password)
# 定义加密后的PDF文件的名称
pdf_output_file = open(file.rstrip('.pdf') + '_加密.pdf', 'wb')
# 将加密后的PDF内容写入新文件
pdf_writer.write(pdf_output_file)
# 关闭文件
pdf_output_file.close()
# 加密操作完成,提醒用户
print("加密完成,程序5秒后自动关闭")
# 程序暂停5秒,以便用户看到完成提示
sleep(5)
如何使用该脚本 🛠️
确保已经安装了Python环境和
PyPDF2
库。将上述脚本保存为
.py
文件,例如encrypt_pdfs.py
。打开终端或命令提示符,导航到脚本所在的目录。
运行脚本:
python encrypt_pdfs.py
。根据提示输入包含PDF文件的文件夹路径。
根据提示输入加密密码。
等待脚本执行完成,加密后的PDF文件将在原文件夹内生成,文件名格式为原文件名后加上
_加密.pdf
。
结语 🎊
使用Python来批量加密PDF文件不仅可以节省大量时间,而且可以避免人为设置密码时的失误。通过简单的用户输入,我们的脚本可以自动完成整个加密过程,并且可以根据需要轻松地进行自定义和扩展。如果您在使用过程中遇到任何问题,可以联系微信交流学习,共同进步。