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

使用Pandas读取加密的Excel文件

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

标签:Python

如果试图使用pandas读取使用密码加密的Excel文件,并收到以下消息:

这个消息表示试图在不提供密码的情况下读取使用密码加密的文件。在本文中,将展示如何将加密的Excel文件读入pandas。

最好的解决方案是使用msoffcrypto库。

使用pip进行安装:

pip install msoffcrypto-tool

将加密的Excel文件直接读取到Pandas

msoffcrypto库有一个load_key()方法来为Excel文件准备密码,然后decrypt()方法解锁文件并将其保存到磁盘。

由于希望将加密的Excel文件直接读取到pandas中,因此保存到磁盘将效率低下。因此,可以将文件内容临时写入内存缓冲区(RAM)。为此,需要使用io库。

import msoffcrypto

import io

import pandas as pd

temp= io.BytesIO()

io.BytesIO()允许将内容写入内存缓冲区(RAM),这有助于比写入磁盘更快地处理文件。

在示例中,密码是“123”,确保在测试此代码时将其替换为自己的密码。下面的代码片段使用“rb”模式以二进制格式打开加密的Excel文件“passwordfile.xlsx”,解锁该文件,然后将内容(Excel文件)保存到名为temp的内存缓冲区(RAM)位置。

with open(r’D:\test\passwordfile.xlsx’, ‘rb’) as f:

excel = msoffcrypto.OfficeFile(f)

excel.load_key(‘123’)

excel.decrypt(temp)

现在,这个临时文件是我们的目标Excel文件,密码被删除,可以继续使用正常的pd.excel()来读取它!

将代码放在一起

这是一个简短的脚本,用于将加密的Excel文件直接读取到pandas中。注意,在此过程中,既没有修改原始Excel文件,也没有在磁盘上创建不必要的文件。

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

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

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

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

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