合肥哪里做网站,网络营销师证书有用吗,天门做网站,html做的网站排版导致乱码欢迎查看第一版 https://blog.csdn.net/weixin_45631815/article/details/140013476?spm1001.2014.3001.5502
一功能改进
此版本主要改进功能有以下:
直接可以调用函数实现可以尝试多个密码没有加密的文件进行保存,可以按实际业务进行改进.思路来源:java 面向对象设计模式.…欢迎查看第一版 https://blog.csdn.net/weixin_45631815/article/details/140013476?spm1001.2014.3001.5502
一功能改进
此版本主要改进功能有以下:
直接可以调用函数实现可以尝试多个密码没有加密的文件进行保存,可以按实际业务进行改进.思路来源:java 面向对象设计模式.(解码失败后的策略模式1进行尝试2对异常进行处理)
二具体代码实现
import msoffcrypto
import os
# 已加密Excel文件路径
encrypted_file r已加密Excel文件路径
# 未加密文件将保存的路径
unencrypted_file r未加密文件将保存的路径
# Excel文件可能的密码列表
excel_passwords [密码1, 密码2]
def decrypt_excel(encrypted_file, unencrypted_file, excel_passwords):for password in excel_passwords:try:# 打开加密文件with open(encrypted_file, rb) as encrypted_file_fd:office_file msoffcrypto.OfficeFile(encrypted_file_fd)# 尝试使用当前密码解密office_file.load_key(passwordpassword)# 如果没有抛出异常说明密码正确进行解密并跳出循环with open(unencrypted_file, wb) as unencrypted_file_fd:office_file.decrypt(unencrypted_file_fd)print(f文件已使用密码{password}解密并保存至{unencrypted_file})break # 密码正确解密完成结束循环except msoffcrypto.exceptions.InvalidKeyError:continue # 当前密码错误尝试下一个密码# 如果文件[Unencrypted document]没有加密直接就退出循环except msoffcrypto.exceptions.FileFormatError:# 没有加密的文件,直接复制操作with open(unencrypted_file, wb) as unencrypted_file_fd:unencrypted_file_fd.write(open(encrypted_file, rb).read())breakexcept Exception as e:print(f解密过程中发生错误{e})break # 发生其他错误结束循环
directory_path rG:\路径加密
for root, dirs, files in os.walk(directory_path):for file in files:print(os.path.join(root, file))mr{}.format(os.path.join(root, file))outmr{}.format(os.path.join(root.replace(加密,),file))decrypt_excel(m,outm,excel_passwords)三其他改进
欢迎交流不同改进意见