Python批量給excel文件加密

有時候我們需要定期給公司外部發郵件,在自動化發郵件的時候需要對文件進行加密傳輸。本文和你一起來探索用python給單個文件和批量文件加密。
??
python自動化發郵件可參考【干貨】用Python每天定時發送監控郵件。

文章目錄

    • 一、安裝pypiwin32包
    • 二、定義給excel加密的函數
    • 三、給單個excel加密
    • 四、批量給excel加密

一、安裝pypiwin32包

??
調用win32com.client,需先要安裝pypiwin32包。打開cmd,安裝語句如下:

pip install pypiwin32

若安裝成功,會顯示結果如下:
??
在這里插入圖片描述

??
??

二、定義給excel加密的函數

??
我們先定義一個給單個excel加密的函數,具體代碼如下:

import win32com.client#excel加密函數
def pwd_xlsx(old_filename, new_filename, pwd_str, pw_str=''):'''old_filename:舊文件名 new_filename:新文件名pwd_str:保存的新文件密碼pw_str:打開文件密碼,若無訪問密碼,則設為'''''    xcl = win32com.client.Dispatch("Excel.Application")wb = xcl.Workbooks.Open(old_filename, False, False, None, pw_str)xcl.DisplayAlerts = False#關閉顯示告警對話框wb.SaveAs(new_filename, None, pwd_str, '')#保存時可設置訪問密碼xcl.Quit()

主要功能是輸入舊文件,生成新文件,并對新文件加密。
??
??

三、給單個excel加密

??
在批量加密之前,先調用上一節的函數對單個文件進行加密。具體代碼如下:

filename = "F:\\公眾號\\71.excel自動加密\\train_u6lujuX_CVtuZ9i.csv"
pwd_xlsx(filename,filename, '1111')
# 三個參數:待加密文件,加密后名稱,密碼

得到結果:
??
在這里插入圖片描述
??
從上述pwd_xlsx函數調用語句可知,待加密文件和加密后文件是同一個,且設置的文件密碼是1111(密碼可根據需要自行設置)。即打開原始文件,保存新文件并加密。由于新文件和原始文件同名,實際是用加密后的新文件覆蓋了原始文件。
??
注意1: 我嘗試用os.chdir函數定義存儲原始文件的文件夾,在pwd_xlsx函數中只放文件名,結果報錯。
??
注意2: 該函數對excel文件可以加密,若輸入的是csv文件,雖然不會報錯,但是生成的文件并未加密。
??
若想加密后的文件不覆蓋原始文件,具體代碼如下:

old_filename = "F:\\公眾號\\71.excel自動加密\\date2.xlsx"
new_filename = "F:\\公眾號\\71.excel自動加密\\date2_m.xlsx"
pwd_xlsx(old_filename, new_filename, '123')
# 三個參數:待加密文件,加密后名稱,密碼

得到結果:
??
在這里插入圖片描述
??
??

四、批量給excel加密

??
首先把需要加密的文件放到一個文件夾中,應用如下程序可以獲取該文件夾中的所有文件名稱。

import osfolder_path = "F:\\公眾號\\71.excel自動加密\\批量加密"
#文件夾路徑
file_list = os.listdir(folder_path)
#獲取文件夾中所有文件的文件名
for file_name in file_list:print(file_name)#打印文件夾中的文件名

得到結果:

pl_date1.xlsx
pl_date1_m.xlsx
pl_date2.xlsx
pl_date3.xlsx
pl_date4.xlsx
pl_date5.xlsx

原始文件夾內容如下:
??
在這里插入圖片描述
??
可以發現兩者是一致的。接著調整一下上述代碼,生成原始文件路徑和名稱,以及新文件路徑和名稱,并批量調用加密函數,生成加密文件,具體代碼如下:
??

import osfolder_path = "F:\\公眾號\\71.excel自動加密\\批量加密"
#文件夾路徑
file_list = os.listdir(folder_path)
#獲取文件夾中所有文件的文件名
for file_name in file_list:old_filename = folder_path + '\\' + file_name#原始文件new_filename = old_filename.replace('.xlsx', '_m.xlsx')#新加密文件print(old_filename)print(new_filename)pwd_xlsx(old_filename, new_filename, '123')#調用加密函數對原始文件進行加密并生成新文件,文件密碼123

得到結果:
??
在這里插入圖片描述

至此,Python中批量給excel文件加密已講解完畢,感興趣的朋友可以自己跟著代碼嘗試一遍圖片。
??
【限時免費進群】 在群內免費討論學習Python、玩轉Python、風控建模、人工智能學習、數據分析等內容,也可交流工作中遇到的相關問題。需要的朋友添加微信號19967879837,加時備注想進的群,比如風控建模。
??
你可能感興趣:
用Python繪制皮卡丘
用Python繪制詞云圖
用Python繪制520永恒心動
Python人臉識別—我的眼里只有你
Python畫好看的星空圖(唯美的背景)
【Python】情人節表白煙花(帶聲音和文字)
用Python中的py2neo庫操作neo4j,搭建關聯圖譜
Python浪漫表白源碼合集(愛心、玫瑰花、照片墻、星空下的告白)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/39397.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/39397.shtml
英文地址,請注明出處:http://en.pswp.cn/news/39397.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【Docker】Docker使用之容器技術發展史

🎬 博客主頁:博主鏈接 🎥 本文由 M malloc 原創,首發于 CSDN🙉 🎄 學習專欄推薦:LeetCode刷題集 🏅 歡迎點贊 👍 收藏 ?留言 📝 如有錯誤敬請指正&#xff0…

【Unity】UI的一些簡單知識

Canvas 新建一個Canvas Render Mode Canvas 中有一個Render Mode(渲染模式),有三種渲染模式: Screen Space-Overlay (屏幕空間)Screen Space-Camara 、 World Space 其中,Space- Overlay是默認顯示在…

使用Spring Boot和Redis實現用戶IP接口限流的詳細指南

系列文章目錄 文章目錄 系列文章目錄前言一、準備工作二、編寫限流過濾器三、配置Redis四、測試接口限流總結 前言 在高并發場景下,為了保護系統免受惡意請求的影響,接口限流是一項重要的安全措施。本文將介紹如何使用Spring Boot和Redis來實現用戶IP的…

數據統計與可視化的Dash應用程序

在數據分析和可視化領域,Dash是一個強大的工具,它結合了Python中的數據處理庫(如pandas)和交互式可視化庫(如Plotly)以及Web應用程序開發框架。本文將介紹如何使用Dash創建一個簡單的數據統計和可視化應用程…

移動端網頁中的前端視頻技術探索

引言 隨著移動設備的普及和網絡速度的提升,移動端網頁中的視頻播放已經成為了越來越重要的功能需求。本篇博客將介紹一些在移動端網頁中實現前端視頻播放的技術探索,并提供詳細的代碼示例。 1. 基本視頻標簽 在移動端網頁中實現視頻播放最基本的方法就…

【C++學習手札】一文帶你初識運算符重載

食用指南:本文在有C基礎的情況下食用更佳 🍀本文前置知識: C類 ??今日夜電波:クリームソーダとシャンデリア—Edo_Ame江戶糖 1:20 ━━━━━━?💟──────── 3:40 …

ID3 決策樹

西瓜數據集D如下: 編號色澤根蒂敲聲紋理臍部觸感好瓜1青綠蜷縮濁響清晰凹陷硬滑是2烏黑蜷縮沉悶清晰凹陷硬滑是3烏黑蜷縮濁響清晰凹陷硬滑是4青綠蜷縮沉悶清晰凹陷硬滑是5淺白蜷縮濁響清晰凹陷硬滑是6青綠稍蜷濁響清晰稍凹軟粘是7烏黑稍蜷濁響稍糊稍凹軟粘是8烏黑稍蜷濁響清晰…

idea cannot download sources 解決方法

問題 點擊class文件右上角下載源碼失敗 解決方案 找到idea terminal 控制臺cd 至maven工程執行 mvn dependency:resolve -Dclassifiersources

【IMX6ULL驅動開發學習】04.應用程序和驅動程序數據傳輸和交互的4種方式:非阻塞、阻塞、POLL、異步通知

一、數據傳輸 1.1 APP和驅動 APP和驅動之間的數據訪問是不能通過直接訪問對方的內存地址來操作的,這里涉及Linux系統中的MMU(內存管理單元)。在驅動程序中通過這兩個函數來獲得APP和傳給APP數據: copy_to_usercopy_from_user …

24屆近3年上海電力大學自動化考研院校分析

今天給大家帶來的是上海電力大學控制考研分析 滿滿干貨~還不快快點贊收藏 一、上海電力大學 學校簡介 上海電力大學(Shanghai University of Electric Power),位于上海市,是中央與上海市共建、以上海市管理為主的全日…

stack 、 queue的語法使用及底層實現以及deque的介紹【C++】

文章目錄 stack的使用queue的使用適配器queue的模擬實現stack的模擬實現deque stack的使用 stack是一種容器適配器&#xff0c;具有后進先出&#xff0c;只能從容器的一端進行元素的插入與提取操作 #include <iostream> #include <vector> #include <stack&g…

Layui列表復選框根據條件禁用

// 禁用客服回訪id有值的復選框res.data.forEach(function (item, i) {if (item.feedbackEmpId) {let index res.data[i][LAY_TABLE_INDEX];$(".layui-table tr[data-index"index"] input[typecheckbox]").prop(disabled,true);$(".layui-table tr[d…

【WebRTC---源碼篇】(二十四)GCC獲取碼率后的分配

RtpTransportControllerSend::PostUpdates 配置碼率 // Contains updates of network controller comand state. Using optionals to // indicate whether a member has been updated. The array of probe clusters // should be used to send out probes if not empty. // 包…

【SpringBoot】89、SpringBoot中使用@Transactional進行事務管理

事務是一組組合成邏輯工作單元的操作,雖然系統中可能會出錯,但事務將控制和維護事務中每個操作的一致性和完整性。 1、SpringBoot 引用說明 新建的 Spring Boot 項目中,一般都會引用 spring-boot-starter 或者 spring-boot-starter-web,而這兩個起步依賴中都已經包含了對…

EV 錄屏修復小工具

參考這篇文章, EV錄制文件損壞-修復方法, 我用 C# 寫了一個小程序. 倉庫: github.com/SlimeNull/EvRepair 下載: github.com/SlimeNull/EvRepair/Releases 鏡像: gitee.com/slimenull/EvRepair/releases 覺得還不錯的話, 點個星星 推薦使用的幾個理由: 內嵌 ffmpeg 和 recov…

Linux學習之初識Linux

目錄 一.Linux的發展歷史及概念 1.什么是Linux UNIX發展的歷史&#xff1a; Linux發展歷史&#xff1a; 2. 開源 商業化發行版本 二. 如何搭建Linux環境 Linux 環境的搭建方式主要有三種&#xff1a; 1. 直接安裝在物理機上 2. 使用虛擬機軟件 3. 使用云服務器 三. …

沒學C++,如何從C語言絲滑過度到python【python基礎萬字詳解】

大家好&#xff0c;我是紀寧。 文章將從C語言出發&#xff0c;深入介紹python的基礎知識&#xff0c;也包括很多python的新增知識點詳解。 文章目錄 1.python的輸入輸出&#xff0c;重新認識 hello world&#xff0c;重回那個激情燃燒的歲月1.1 輸出函數print的規則1.2 輸入函…

idea 使用debug 啟動項目的時候 出現 Method breakpoints may dramatically slow down debugging

問題: 1. 寫了一段時間的代碼&#xff0c;在debug啟動項目后提示&#xff1a;Method breakpoints may dramatically slow down debugging 但是正常啟動是可以的&#xff0c;debug不行。 2. idea 里面的項目&#xff0c;很多地方都有斷點&#xff0c;現在想要取消全部的斷點…

Redis——hash類型詳解

概述 Redis本身就是鍵值對結構&#xff0c;而Redis中的value可以是哈希類型&#xff0c;為了區分這兩個鍵值對&#xff0c;Redis中的鍵值對是key-value&#xff0c;而value中的哈希鍵值對則是field-value&#xff0c;其中value必須是字符串 下面介紹一些Redis的hash類型的常用…

Vue中拖動排序功能,引入SortableJs,前端拖動排序。

背景&#xff1a; 作為一名前端開發人員&#xff0c;在工作中難免會遇到拖拽功能&#xff0c;分享一個github上一個不錯的拖拽js庫&#xff0c;能滿足我們在項目開發中的需要&#xff0c;支持Vue和React&#xff0c;下面是我在vue后臺項目中中使用SortableJS的使用詳細流程&am…