欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python 實(shí)現(xiàn)批量文件加密功能

 更新時(shí)間:2021年07月29日 10:54:26   作者:先剃度再出家  
python自動(dòng)化辦公現(xiàn)在可不是一個(gè)陌生的詞,也隨著人們對(duì)自己隱私越來越看重,本文主要介紹了python 實(shí)現(xiàn)批量文件加密功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

一、源碼

1、結(jié)果展示

  python自動(dòng)化辦公現(xiàn)在可不是一個(gè)陌生的詞,也隨著人們對(duì)自己隱私越來越看重,就會(huì)出現(xiàn)這樣的需求:每人一個(gè)PDF文件,因有個(gè)人隱私信息,所以需要對(duì)文件進(jìn)行加密且密碼為本人身份證后六位。
  廢話不多說,上結(jié)論,程序運(yùn)行結(jié)果如下:

在這里插入圖片描述

  我們?nèi)ヒ惶骄烤?,原文件如下?br />

在這里插入圖片描述

 獲取密碼如下:

在這里插入圖片描述

  將文件加密以后結(jié)果如下:

在這里插入圖片描述

  我們隨機(jī)打開一個(gè)驗(yàn)證一下:

在這里插入圖片描述

  輸入身份證后六位,作為密碼即可打開。

2、源碼

  可運(yùn)行源碼如下:

import os
from PyPDF2 import PdfFileWriter, PdfFileReader
import pandas as pd

# 全局工作目錄
os.chdir("D:\加密")

def main():
    # 1、找文件
    # 獲取實(shí)習(xí)證明原文件的文件名
    rosterfile = os.listdir('.\原文件\\')
    # 獲取信息中表的姓名與密碼
    name,Password = getPassword()

    # 對(duì)每個(gè)文件進(jìn)行加密并保存
    for prove in rosterfile:
        for Name in name:
            if Name in prove:
                i = name.index(Name)
                rosterLast = prove
                rosterNow = '.\文件加密版本\\' + prove
                password = Password[i]
                # 2、加密文件并輸出
                encryptionPDF(rosterLast,rosterNow,password)


# 獲取了表中姓名信息,并提取身份證后六位作為密碼
def getPassword():
    password = []
    name = []
    # 獲取Excel列,包括姓名、身份證號(hào)
    Name = pd.read_excel('.\名單.xlsx', usecols=[0],names=None)  # 讀取項(xiàng)目名稱列,不要列名
    Id = pd.read_excel('.\名單.xlsx', usecols=[1],names=None)  # 讀取項(xiàng)目名稱列,不要列名
    Name1 = Name.values.tolist()
    id = Id.values.tolist()
    # 提取身份證后六位作為密碼
    for i in id:
        password.append(str(i[0])[12:18:1])
    # 提取姓名為字符串,原來為list
    for j in Name1:
        name.append(j[0])
    return name,password

# 加密文件并輸出
# 變量說明:rosterLast-原PDF文件路徑,rosterNow-加密后輸出路徑,password-加密密碼
def encryptionPDF(rosterLast,rosterNow,password):
    pdf_reader = PdfFileReader(r'.\原文件\\%s'%(rosterLast))  # 輸入你想要操作的pdf文檔的位置/名稱
    pdf_writer = PdfFileWriter()

    for page in range(pdf_reader.getNumPages()):
        pdf_writer.addPage(pdf_reader.getPage(page))

    pdf_writer.encrypt(password)  # 寫入密碼并輸出到目的路徑
    with open(rosterNow, 'wb') as out:
        pdf_writer.write(out)
    print("文件:%s----已完成加密,密碼為:%s"%(rosterLast,password))

# 函數(shù)入口
if __name__ == '__main__':
    print("-----開始加密-----")
    main()
    print("-----加密完成-----")

二、源碼注釋

1、所使用依賴包

  共使用三個(gè)函數(shù):

# 文件操作
import os

# 操作PDF文件
from PyPDF2 import PdfFileWriter, PdfFileReader

# 操作數(shù)據(jù)
import pandas as pd

  在這里我只是簡(jiǎn)單說明用這些第三方庫(kù)干了什么,具體學(xué)習(xí)可參考官方文檔或者菜鳥教程。

2、函數(shù)功能

  編碼過程中也共定義有三個(gè)函數(shù),其功能如下:

# 主函數(shù),從這里我們可以看到我整體是如何實(shí)現(xiàn)此需求的
def main():

# 功能函數(shù),用來獲取文件密碼的,然后使用姓名與文件名做匹配,達(dá)到本人文件為本人身份證后六位的需求。
def getPassword():

#  功能函數(shù),本次編碼的核心,前面都可以作為準(zhǔn)備階段,就是為本函數(shù)用來加密文件而提供讀取、輸出路徑以及密碼的。
def encryptionPDF(rosterLast,rosterNow,password):

3、代碼拓展

  這只是一個(gè)很簡(jiǎn)單的需求,它并不具有普遍性,它可能僅在我電腦上可以運(yùn)行,當(dāng)你拷貝走源碼以后可能就沒法運(yùn)行了,會(huì)報(bào)各種各樣的錯(cuò)誤。
  如果你想直接用,那可能得按照我在編碼過程中準(zhǔn)備的數(shù)據(jù)一模一樣的去準(zhǔn)備。所以它其實(shí)只能用作學(xué)習(xí)交流,想要直接使用不太現(xiàn)實(shí)。
  當(dāng)然可以嘗試著在此基礎(chǔ)上增加功能或者增加代碼的可用性與門檻。例如:獲取用戶輸入的路徑,定義密碼模板等,讓代碼具有普遍性,可直接拷貝運(yùn)行那種的。

三、可運(yùn)行環(huán)境

  那如果你不想改源碼,想直接用那怎么辦?
  沒問題!那你就跟著我來吧,一點(diǎn)一點(diǎn)來。
  首先在D盤創(chuàng)建一個(gè)文件夾名為:加密;注意!必須保證它在根目錄下!它的路徑為D:\加密。然后打開文件創(chuàng)建如下:必須一模一樣

在這里插入圖片描述

  差不多了,原文件放在原文件夾里面,運(yùn)行以后的文件就在加密版本文件夾里面。
  最重要的就是在名單的表格里面把信息填好,這就是用來設(shè)置密碼的,表格格式如下:身份證號(hào)碼格式為數(shù)字

在這里插入圖片描述

  表格只有兩列!一列姓名、一列身份證號(hào)碼。身份證號(hào)碼為數(shù)字類型!

到此這篇關(guān)于python 實(shí)現(xiàn)批量文件加密功能的文章就介紹到這了,更多相關(guān)python 批量文件加密內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Django接收post前端返回的json格式數(shù)據(jù)代碼實(shí)現(xiàn)

    Django接收post前端返回的json格式數(shù)據(jù)代碼實(shí)現(xiàn)

    這篇文章主要介紹了Django接收post前端返回的json格式數(shù)據(jù)代碼實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-07-07
  • 淺談Python爬蟲原理與數(shù)據(jù)抓取

    淺談Python爬蟲原理與數(shù)據(jù)抓取

    這篇文章主要介紹了淺談爬蟲原理與數(shù)據(jù)抓取,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • 如何用python抓取B站數(shù)據(jù)

    如何用python抓取B站數(shù)據(jù)

    今天介紹一個(gè)獲取B站數(shù)據(jù)的Python擴(kuò)展庫(kù)-bilibili_api,對(duì)此感興趣的同學(xué),可以實(shí)驗(yàn)一下
    2021-05-05
  • 詳解用python寫一個(gè)抽獎(jiǎng)程序

    詳解用python寫一個(gè)抽獎(jiǎng)程序

    這篇文章主要介紹了用python寫一個(gè)抽獎(jiǎng)程序,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • 用Python計(jì)算三角函數(shù)之a(chǎn)cos()方法的使用

    用Python計(jì)算三角函數(shù)之a(chǎn)cos()方法的使用

    這篇文章主要介紹了用Python計(jì)算三角函數(shù)之a(chǎn)cos()方法的使用,是Python學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-05-05
  • 利用python如何在前程無憂高效投遞簡(jiǎn)歷

    利用python如何在前程無憂高效投遞簡(jiǎn)歷

    這篇文章主要給大家介紹了關(guān)于利用python如何在前程無憂高效投遞簡(jiǎn)歷的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • Sublime如何配置Python3運(yùn)行環(huán)境

    Sublime如何配置Python3運(yùn)行環(huán)境

    這篇文章主要介紹了Sublime如何配置Python3運(yùn)行環(huán)境問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • Python練習(xí)之ORM框架

    Python練習(xí)之ORM框架

    這篇文章主要介紹了Python練習(xí)之ORM框架,通過使用SQLObject框架操作MySQL數(shù)據(jù)庫(kù)展開文章主題詳細(xì)內(nèi)容,具有一定的參考價(jià)值,需要的朋友可以參考一下
    2022-06-06
  • Python存儲(chǔ)List數(shù)據(jù)到文件(text/csv/excel)幾種常見方法

    Python存儲(chǔ)List數(shù)據(jù)到文件(text/csv/excel)幾種常見方法

    在數(shù)據(jù)分析中經(jīng)常需要從csv格式的文件中存取數(shù)據(jù)以及將數(shù)據(jù)寫書到csv文件中,下面這篇文章主要給大家介紹了關(guān)于Python存儲(chǔ)List數(shù)據(jù)到文件(text/csv/excel)的幾種常見方法,需要的朋友可以參考下
    2024-02-02
  • 對(duì)Python模塊導(dǎo)入時(shí)全局變量__all__的作用詳解

    對(duì)Python模塊導(dǎo)入時(shí)全局變量__all__的作用詳解

    今天小編就為大家分享一篇對(duì)Python模塊導(dǎo)入時(shí)全局變量__all__的作用詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01

最新評(píng)論