前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用Python批量删除加密Excel文件的密码

使用Python批量删除加密Excel文件的密码

作者头像
fanjy
发布2022-04-13 13:47:14
2.9K0
发布2022-04-13 13:47:14
举报
文章被收录于专栏:完美Excel

标签:Python

如果碰到加密的Excel文件,则会很麻烦。在本文中,将展示如何使用Python删除Excel文件密码。

同样,如果收到很多加密的Excel文件,即使知道密码,也要在打开每个文件时都要输入密码,非常繁琐。如果能够自动处理,岂不更好!

要删除Excel文件的密码,将使用msoffcrypto库。可以使用pip来安装库,注意用于安装的名称是msoffcrypto-tool。

pip install msoffcrypto-tool

获取文件名

使用pathlib库获取所有Excel文件的文件路径。注意,.iterdir()将遍历文件夹中的所有内容,包括文件和目录。只需要添加核对只是抓取.xlsx文件。

pathlib.glob(‘*.xlsx’)方法返回与格式’*.xlsx’匹配的所有路径,即任何以’.xlsx’结尾的文件路径,或者说是Excel文件。

import pathlib

url= pathlib.Path(r’D:\test\remove_excel_password’)

excel_flies= list(url.glob(‘*.xlsx’))

使用Python删除Excel密码

msoffcrypto库有两个关键方法:load_key和decrypt。

load_key():准备密码

decrypt():通过删除密码解锁文件,然后将文件保存到磁盘

继续使用文件路径列表。注意,所有Excel文件都使用相同的密码“123”,确保在测试代码时将其替换为实际的密码。

注意,下面的函数将使用二进制模式“rb”在Python中打开每个密码加密的Excel文件。然后,它将删除密码(通过解密),并将文件保存到一个新的位置output_folder中。

def unlock(filename, passwd, output_folder):

temp = open(filename, ‘rb’)

excel = msoffcrypto.OfficeFile(temp)

excel.load_key(passwd)

out_path = pathlib.Path(output_foler)

if not out_path.exists():

out_path.mkdir()

with open(str(out_path/filename.name), ‘wb’)as f:

excel.decrypt(f)

temp.close()

因为使用的是pathlib,每个filename实际上都是一个pathlib对象,为了从对象中获取文件名,可以调用.name属性,返回文件名的字符串值。

注意,.load_key()方法只准备密码,而不会解锁文件。decrypt()解锁文件,然后将文件保存到磁盘。

将代码放在一起

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-03-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 完美Excel 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档