python怎么实现批量文件加密功能-mile米乐体育

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

目录
  • 一、源码

    • 1、结果展示

    • 2、源码

  • 二、源码注释

    • 1、所使用依赖包

    • 2、函数功能

    • 3、代码拓展

  • 三、可运行环境

一、源码

1、结果展示

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

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

 获取密码如下:

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

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

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

2、源码

  可运行源码如下:

importos frompypdf2importpdffilewriter,pdffilereader importpandasaspd  #全局工作目录 os.chdir("d:\加密")  defmain(): #1、找文件 #获取实习证明原文件的文件名 rosterfile=os.listdir('.\原文件\\') #获取信息中表的姓名与密码 name,password=getpassword()  #对每个文件进行加密并保存 forproveinrosterfile: fornameinname: ifnameinprove: i=name.index(name) rosterlast=prove rosternow='.\文件加密版本\\' prove password=password[i] #2、加密文件并输出 encryptionpdf(rosterlast,rosternow,password)   #获取了表中姓名信息,并提取身份证后六位作为密码 defgetpassword(): 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() #提取身份证后六位作为密码 foriinid: password.append(str(i[0])[12:18:1]) #提取姓名为字符串,原来为list forjinname1: name.append(j[0]) returnname,password  #加密文件并输出 #变量说明:rosterlast-原pdf文件路径,rosternow-加密后输出路径,password-加密密码 defencryptionpdf(rosterlast,rosternow,password): pdf_reader=pdffilereader(r'.\原文件\\%s'%(rosterlast))#输入你想要操作的pdf文档的位置/名称 pdf_writer=pdffilewriter()  forpageinrange(pdf_reader.getnumpages()): pdf_writer.addpage(pdf_reader.getpage(page))  pdf_writer.encrypt(password)#写入密码并输出到目的路径 withopen(rosternow,'wb')asout: pdf_writer.write(out) print("文件:%s----已完成加密,密码为:%s"%(rosterlast,password))  #函数入口 if__name__=='__main__': print("-----开始加密-----") main() print("-----加密完成-----")

二、源码注释

1、所使用依赖包

  共使用三个函数:

#文件操作 importos  #操作pdf文件 frompypdf2importpdffilewriter,pdffilereader  #操作数据 importpandasaspd

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

2、函数功能

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

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

3、代码拓展

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

三、可运行环境

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

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

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

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

展开全文
内容来源于互联网和用户投稿,文章中一旦含有米乐app官网登录的联系方式务必识别真假,本站仅做信息展示不承担任何相关责任,如有侵权或涉及法律问题请联系米乐app官网登录删除

最新文章

网站地图