iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python怎么实现批量文件加密功能
  • 795
分享到

python怎么实现批量文件加密功能

2023-06-20 18:06:03 795人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

这篇文章主要介绍“python怎么实现批量文件加密功能”,在日常操作中,相信很多人在Python怎么实现批量文件加密功能问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”python怎么实现批量文件加密功能”的疑

这篇文章主要介绍“python怎么实现批量文件加密功能”,在日常操作中,相信很多人在Python怎么实现批量文件加密功能问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”python怎么实现批量文件加密功能”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

目录
  • 一、源码

    • 结果展示

    • 源码

  • 二、源码注释

    • 所使用依赖包

    • 函数功能

    • 代码拓展

  • 三、可运行环境

    一、源码

    1、结果展示

      python自动化办公现在可不是一个陌生的词,也随着人们对自己隐私越来越看重,就会出现这样的需求:每人一个pdf文件,因有个人隐私信息,所以需要对文件进行加密且密码为本人身份证后六位。
      废话不多说,上结论,程序运行结果如下:

    python怎么实现批量文件加密功能

      我们去一探究竟,原文件如下:

    python怎么实现批量文件加密功能

     获取密码如下:

    python怎么实现批量文件加密功能

      将文件加密以后结果如下:

    python怎么实现批量文件加密功能

      我们随机打开一个验证一下:

    python怎么实现批量文件加密功能

      输入身份证后六位,作为密码即可打开。

    2、源码

      可运行源码如下:

    import osfrom PyPDF2 import PdfFileWriter, PdfFileReaderimport pandas as pd# 全局工作目录os.chdir("D:\加密")def main():    # 1、找文件    # 获取实习证明原文件的文件名    rosterfile = os.listdir('.\原文件\\')    # 获取信息中表的姓名与密码    name,PassWord = getPassword()    # 对每个文件进行加密并保存    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列,包括姓名、身份证号    Name = pd.read_excel('.\名单.xlsx', usecols=[0],names=None)  # 读取项目名称列,不要列名    Id = pd.read_excel('.\名单.xlsx', usecols=[1],names=None)  # 读取项目名称列,不要列名    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))# 函数入口if __name__ == '__main__':    print("-----开始加密-----")    main()    print("-----加密完成-----")

    二、源码注释

    1、所使用依赖包

      共使用三个函数:

    # 文件操作import os# 操作PDF文件from PyPDF2 import PdfFileWriter, PdfFileReader# 操作数据import pandas as pd

      在这里我只是简单说明用这些第三方库干了什么,具体学习可参考官方文档或者菜鸟教程

    2、函数功能

      编码过程中也共定义有三个函数,其功能如下:

    # 主函数,从这里我们可以看到我整体是如何实现此需求的def main():# 功能函数,用来获取文件密码的,然后使用姓名与文件名做匹配,达到本人文件为本人身份证后六位的需求。def getPassword():#  功能函数,本次编码的核心,前面都可以作为准备阶段,就是为本函数用来加密文件而提供读取、输出路径以及密码的。def encryptionPDF(rosterLast,rosterNow,password):

    3、代码拓展

      这只是一个很简单的需求,它并不具有普遍性,它可能仅在我电脑上可以运行,当你拷贝走源码以后可能就没法运行了,会报各种各样的错误。
      如果你想直接用,那可能得按照我在编码过程中准备的数据一模一样的去准备。所以它其实只能用作学习交流,想要直接使用不太现实。
      当然可以尝试着在此基础上增加功能或者增加代码的可用性与门槛。例如:获取用户输入的路径,定义密码模板等,让代码具有普遍性,可直接拷贝运行那种的。

    三、可运行环境

      那如果你不想改源码,想直接用那怎么办?
      没问题!那你就跟着我来吧,一点一点来。
      首先在D盘创建一个文件夹名为:加密;注意!必须保证它在根目录下!它的路径为D:\加密。然后打开文件创建如下:必须一模一样

    python怎么实现批量文件加密功能

      差不多了,原文件放在原文件夹里面,运行以后的文件就在加密版本文件夹里面。
      最重要的就是在名单的表格里面把信息填好,这就是用来设置密码的,表格格式如下:身份证号码格式为数字

    python怎么实现批量文件加密功能

      表格只有两列!一列姓名、一列身份证号码。身份证号码为数字类型!

    到此,关于“python怎么实现批量文件加密功能”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

    --结束END--

    本文标题: python怎么实现批量文件加密功能

    本文链接: https://www.lsjlt.com/news/299042.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    本篇文章演示代码以及资料文档资料下载

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作