yop*_*ios 6 python csv encryption dataframe pandas
有数据框如何用密码对其进行加密
import pandas as pd
# intialise data of lists.
data = {'Name':['Tom', 'nick', 'krish', 'jack'], 'Age':[20, 21, 19, 18]}
# Creating DataFrame
df = pd.DataFrame(data)
Run Code Online (Sandbox Code Playgroud)
是否有任何 pandas 选项可以添加使用数据框创建的 excel 或 csv 密码。
因此需要密码才能使用 GUI 打开该 csv 或 excel。
尝试过这个:
df.to_excel('123.xlsx')
from openpyxl import Workbook
from openpyxl import load_workbook
test_spreadsheet = "123.xlsx"
wb = load_workbook(test_spreadsheet)
wb.security.workbookPassword = "password"
Run Code Online (Sandbox Code Playgroud)
from openpyxl import Workbook
from openpyxl import load_workbook
test_spreadsheet = "123.xlsx"
wb = load_workbook(test_spreadsheet)
ws = wb.worksheets[0]
ws.protection
ws.protection.set_password('test')
wb.save('12344.xlsx')
Run Code Online (Sandbox Code Playgroud)
from openpyxl import load_workbook
wb = load_workbook(filename = '123.xlsx')
wb.security.workbookPassword = 'test'
wb.security.lockStructure = True
wb.save('123_password.xlsx')
Run Code Online (Sandbox Code Playgroud)
wb = Workbook('123.xlsx')
ws = wb.worksheets[0]
ws.protect('abc123.xlsx')
Run Code Online (Sandbox Code Playgroud)
但当我打开它时。文件正在打开,没有任何密码提示。在谷歌表格和Libre Office中尝试过
发现:Openpyxl 的 WorkbookProtection 仅适用于防止修改那里的工作表。
操作系统:Linux
用这个:
import os
import win32com.client as w32
def encrypt_xlsx(path, password):
xl = w32.gencache.EnsureDispatch('Excel.Application')
path = path if os.path.isabs(path) else os.path.abspath(path)
wb = xl.Workbooks.Open(path)
xl.DisplayAlerts = False
wb.SaveAs(path, 51, password)
xl.Quit()
Run Code Online (Sandbox Code Playgroud)
包括导入语句和函数encrypt_xlsx。path接下来,使用和调用该函数password。
例子:
>>> df = pd.DataFrame({'a':[1,2], 'b':[3,4]}); df.to_excel('123.xlsx')
>>> encrypt_xlsx('123.xlsx', 'password123')
>>> # try to open the Excel file and it will prompt you to enter a password.
Run Code Online (Sandbox Code Playgroud)
代码解释:
w32.gencache.EnsureDispatch启动 Excel 应用程序。os.path.abspath负责将 更改path为绝对路径,否则您可能无法打开 Excel 文件。xl.Workbooks.Open打开 Excel 文件。xl.DisplayAlerts = False保存到同一路径时关闭提示。wb.SaveAs使用原来的名称保存文件,51表示Excel工作簿的格式。以下是 Microsoft 参考的链接:https://learn.microsoft.com/en-us/previous-versions/office/developer/office-2007/bb241279(v=office.12)xl.Quit()关闭 Excel 应用程序。如果您选择删除此行,请记得将xl.DisplayAlerts后面设置为True如果您想打开 Excel 文件或使用强密码对其进行加密,那么我建议您使用我编写的 ExcelHelper 类。请参阅我在《TowardsDataScience》中的文章。
| 归档时间: |
|
| 查看次数: |
5418 次 |
| 最近记录: |