python怎么实现批量文件加密功能
这篇文章主要介绍“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怎么实现批量文件加密功能”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注恰卡编程网网站,小编会继续努力为大家带来更多实用的文章!
推荐阅读
-
一文教你Python如何快速精准抓取网页数据
本文将使用requests和beautifulsoup这两个流行的库来实现。1.准备工作首先安装必要的库:pipinst...
-
使用Python实现IP地址和端口状态检测与监控
-
基于Python打造一个智能单词管理神器
-
Python实现微信自动锁定工具
-
使用Python创建一个功能完整的Windows风格计算器程序
python实现windows系统计算器程序(含高级功能)下面我将介绍如何使用python创建一个功能完整的windows风格计...
-
Python开发文字版随机事件游戏的项目实例
随机事件游戏是一种通过生成不可预测的事件来增强游戏体验的类型。在这类游戏中,玩家必须应对随机发生的情况,这些情况可能会影响他们的资...
-
使用Pandas实现Excel中的数据透视表的项目实践
引言在数据分析中,数据透视表是一种非常强大的工具,它可以帮助我们快速汇总、分析和可视化大量数据。虽然excel提供了内置的数据透...
-
Pandas利用主表更新子表指定列小技巧
一、前言工作的小技巧,利用pandas读取主表和子表,利用主表的指定列,更新子表的指定列。案例:主表:uidname0...
-
Pandas中统计汇总可视化函数plot()的使用
-
Python中tensorflow的argmax()函数的使用小结
在tensorflow中,argmax()函数是一个非常重要的操作,它用于返回给定张量(tensor)沿指定轴的最大值的索引。这个...
