用Python批量去除PDF文件的密码

devtools/2025/2/13 11:07:36/

注意:前提是你知道密码,本代码不是暴力跑字典

最近有个需求,下载了一堆PDF,但都有加密,密码还不一样,每次打开都要输密码很麻烦,所有有了此工具,批量去除所有密码。

python">import os
from pypdf import PdfReader, PdfWriterdef decrypt_pdfs(folder_path, passwords):for filename in os.listdir(folder_path):if filename.endswith('.pdf'):file_path = os.path.join(folder_path, filename)try:with open(file_path, 'rb') as pdf_file:pdf_reader = PdfReader(pdf_file)if pdf_reader.is_encrypted:success = Falsefor password in passwords:try:pdf_reader.decrypt(password)if pdf_reader.pages:pdf_writer = PdfWriter()for page_num in range(len(pdf_reader.pages)):page = pdf_reader.pages[page_num]pdf_writer.add_page(page)file_name_without_ext = os.path.splitext(filename)[0]new_file_name = f"{file_name_without_ext}_decrypted.pdf"new_file_path = os.path.join(folder_path, new_file_name)with open(new_file_path, 'wb') as new_pdf_file:pdf_writer.write(new_pdf_file)print(f"已使用密码 {password} 成功解密并保存为: {new_file_path}")success = Truebreakexcept Exception:continueif not success:print(f"!!!!无法使用提供的任何密码解密 {filename}")else:print(f"{filename} 无密码,无需处理。")except Exception as e:print(f"处理文件 {filename} 时出现错误: {e}")# 你的PDF文件所在文件夹路径
folder_path = 'C:\\Users\\lianq\\Downloads'
# 实际可能的密码组
passwords = ['12345678', '123qwe', '123456']
decrypt_pdfs(folder_path, passwords)

http://www.ppmy.cn/devtools/158462.html

相关文章

服务器使用centos7.9操作系统前需要做的准备工作

文章目录 前言1.操作记录 总结 前言 记录一下centos7.9操作系统的服务器在部署业务服务之前需要做的准备工作。 大家可以复制到自己的编辑器里面,有需求的注释一些步骤。 备注:有条件的项目推荐使用有长期支持的操作系统版本。 1.操作记录 # 更换阿里云…

JavaScript语言的安全开发

JavaScript语言的安全开发 1. 引言 随着互联网的快速发展,JavaScript已经成为Web开发中不可或缺的一部分。无论是前端的用户界面交互,还是后端的服务器处理,JavaScript都发挥着重要的作用。然而,随着使用JavaScript的广泛性&…

性格测评小程序04题库管理

目录 1 创建数据源1.1 题库表1.2 选项表 2 搭建管理后台2.1 搭建题库功能2.2 搭建选项功能2.3 题库和选项联动 3 最终效果总结 我们现在性格测评的算法是通过40个题目来测评用户属于哪一个分类,为此后台需要有可以设置题目和选项的功能,本篇我们介绍一下…

CountDown中复现DeepSeek R1-Zero的效果

来自UC伯克利博士生潘家怡和另两位研究人员,在CountDown中复现了DeepSeek R1-Zero。 实验中,团队验证了通过强化学习,3B的基础语言模型也能够实现自我验证和搜索功能。整个验证的成本不到30美金(约217元)。 https://…

【Linux】Ubuntu Linux 系统 ——PHP开发环境

ℹ️大家好,我是练小杰,元宵节到了,在此祝大家元宵节快乐😆 新的一年里,愿你步步高升,事事如意,心想事成!! 本文是关于Linux 操作系统中部署PHP开发环境这部分基础内容,后…

持续集成-笔记

目录 持续集成Gitee介绍与安装git简介与安装giteegit和gitee的工作原理 pycharm集成Giteepycharm安装gitee插件pycharm使用Gitee插件 Jenkinsjenkins介绍与安装postman集成Jenkins代码集成jenkins 持续集成 概念:团队成员将自己的工作成果,持续集成到一…

Eclipse 插件开发相关概念

整理了Eclipse插件开发的概念,用于熟悉入门 SWT(Standard Widget Toolkit)标准图形工具箱 Java开发的GUI程序技术,由Eclipse开发,相比AWT、Swing更美观;对于目标平台上已经有的控件,SWT会直接使…

excel 日期转换

需求如下: 在excel 里面输入一个4515,4表示年份,2024年,51表示该年的51周,5表示日,周日用1表示,周一用2表示,以此类推,需要转换为年份/月份/日期 若想用公式来实现这一转换&#x…