上文介绍了使用AES算法进行文件加解密的代码 。但是如果在代码中写死了(hardcode)文件名 ,每次要加解密文件都要去改python源代码 ,显然有些太笨了 。为此 ,可以使用命令行参数来在不改动源代码的情况下 ,对命令行参数所指定的文件进行加/解密操作 。也可以指定加解密后输出的文件名称 ,以方便使用 。
我们如下约定:
python文件名为aeshandler.py
-i,表示输入文件名
-o,表示输出文件名
-e,表示加密
-d,表示解密
使用python经典的命令行框架argparse ,它是python标准库的一部分 ,也就是说安装好python3.8就自带这个框架 ,不需要再安装什么 。程序员经常说:talk is cheap,show me your code 。所以将代码如下所示 。
命令执行的效果如下:
# 以下命令显示帮助信息
python .\aeshandler.py
usage: aeshandler.py [-h] [-d] [-e] [-i INPUT] [-o OUTPUT]
optional arguments:
-h, --help show this help message and exit
-d, --decry 解密模式
-e, --encry 加密模式
-i INPUT, --input INPUT
要处理的文件
-o OUTPUT, --output OUTPUT
要输出的文件
# 以下命令加密指定的文件 ,加密后的文件为test1.docx
python .\aeshandler.py -e -i ../resources/神龟虽寿.docx -o test1.docx
Namespace(decry=False, encry=True, input=../resources/神龟虽寿.docx, output=test1.docx)
# 以下命令解密指定的文件,要解密的文件为test1.docx ,解密后的文件为test2.docx
python .\aeshandler.py -d -i test1.docx -o test2.docx
Namespace(decry=True, encry=False, input=test1.docx, output=test2.docx)
通过命令行参数的使用 ,可以为用户提供了最大的灵活性 。通过命令行 ,再结合SHELL脚本等,可以批量处理大量的文件 、目录 ,因此命令行仍然是专家 、高手的最爱 。
声明:本站所有文章 ,如无特殊说明或标注,均为本站原创发布 。任何个人或组织 ,在未征得本站同意时 ,禁止复制 、盗用 、采集 、发布本站内容到任何网站 、书籍等各类媒体平台 。如若本站内容侵犯了原著者的合法权益 ,可联系我们进行处理 。