Python工具开发:集成Figlet Logo与Argparse帮助文档
本文介绍如何在Python原创工具中集成专业Logo与帮助文档。通过Linux下的figlet工具生成ASCII艺术字Logo,并利用Python标准库argparse解析命令行参数。内容涵盖figlet安装与字体选择、argparse实例化、参数添加(如-i、-t)及默认值设置,最后提供Base64编码嵌入Logo的完整代码示例,帮助开发者提升工具的专业性与易用性。
前言
在开发Python原创工具(例如端口扫描器或弱口令爆破工具)时,你是否考虑过为工具添加个性化的Logo以及简洁的帮助信息?
效果如下所示:
Sqlmap工具的Logo展示

Nmap工具的说明文档示例

本文将介绍Linux系统中的figlet工具,以及Python中用于解析命令行参数和选项的标准模块argparse。
Figlet工具的使用
figlet是Linux系统下的一个实用工具,可将输入的字符串转换为各种风格的ASCII艺术字Logo。这适用于在开发个人工具后,为其添加独特的标识性Logo。
安装方法
sudo apt-get install figlet
目录结构说明

其中,flc文件为控制文件,flf文件为字体模板文件。
常用语法示例
figlet AnonySec -f standard.flf
① AnonySec 是需要生成Logo的字符串内容
② -f standard.flf 用于选择不同风格的字体模板
效果展示

【注:其他使用参数,请自行查阅相关文档】
Argparse模块的使用
argparse是Python中用于解析命令行参数和选项的标准模块,它可以帮助为原创工具添加帮助信息,从而编写出可读性极高的程序。 大家可能对Linux工具中的--help命令印象深刻,该模块正是用于生成此类帮助文档。
导入模块
from argparse import ArgumentParser
可以直接使用import argparse导入,但在代码编写时可能会稍显繁琐。
实例化对象
parser = ArgumentParser()
需要实例化一个ArgumentParser类的对象。
添加说明文档
parser.add_argument("-i", dest="ip", help="Please enter the ip,for example 192.168.1.1")
上述代码中的add_argument()方法用于向parser对象中添加参数。
① -i 表示输入时紧跟此参数的一个字符串即为此参数的值
② dest="ip" 将 -i 后面的字符串赋值给变量 ip
③ help="******" 提供此参数的说明信息
parser.add_argument("-t", dest="thread_count", type=int, default=100, help="Please enter the thread number")
① type="int" 指定此参数的默认类型为整型
② default=100 当未输入此参数时,该参数默认为100
赋值操作
args = parser.parse_args()
对上述添加的参数进行赋值处理。
完整代码示例
parser = ArgumentParser()
parser.add_argument("-i", dest="ip", help="Please enter the ip,for example 192.168.1.1")
parser.add_argument("-t", dest="thread_count", type=int, default=100, help="Please enter the thread number")
args = parser.parse_args()
print 'The ip is: %s .' %args.ip
print 'The thread number is: %s .' %args.thread_count
使用print语句测试赋值是否成功。若赋值成功,即可通过args.ip与args.thread_count调用这些参数。
【注:其他使用参数,请自行查阅相关文档】
附:Base64编码Logo
logo_code = 'ICAgIF8gICAgICAgICAgICAgICAgICAgICAgICAgICAgX19fXyAgICAgICAgICAgIAogICAvIFwgICBfIF9fICAgX19fICBfIF9fICBfICAgXy8gX19ffCAgX19fICBfX18gCiAgLyBfIFwgfCAnXyBcIC8gXyBcfCAnXyBcfCB8IHwgXF9fXyBcIC8gXyBcLyBfX3wKIC8gX19fIFx8IHwgfCB8IChfKSB8IHwgfCB8IHxffCB8X19fKSB8ICBfXy8gKF9fIAovXy8gICBcX1xffCB8X3xcX19fL3xffCB8X3xcX18sIHxfX19fLyBcX19ffFxfX198CiAgICAgICAgICAgICAgICAgICAgICAgICAgIHxfX18vCgpQb3dlcmVkIGJ5IEFub255U2VjCkJsb2cnczogaHR0cDovL3d3dy5hbm9ueXNlYy5jbg==' logo = base64.b64decode(logo_code) print logo
logo_code是预先使用base64加密的内容,目的是使Logo嵌入不显得突兀。只需对base64解密一次,即可将其输出至屏幕。
实例效果图

附源码
# coding:utf-8
# powered by AnonySec
import base64
from argparse import ArgumentParser
logo_code = 'ICAgIF8gICAgICAgICAgICAgICAgICAgICAgICAgICAgX19fXyAgICAgICAgICAgIAogICAvIFwgICBfIF9fICAgX19fICBfIF9fICBfICAgXy8gX19ffCAgX19fICBfX18gCiAgLyBfIFwgfCAnXyBcIC8gXyBcfCAnXyBcfCB8IHwgXF9fXyBcIC8gXyBcLyBfX3wKIC8gX19fIFx8IHwgfCB8IChfKSB8IHwgfCB8IHxffCB8X19fKSB8ICBfXy8gKF9fIAovXy8gICBcX1xffCB8X3xcX19fL3xffCB8X3xcX18sIHxfX19fLyBcX19ffFxfX198CiAgICAgICAgICAgICAgICAgICAgICAgICAgIHxfX18vCgpQb3dlcmVkIGJ5IEFub255U2VjCkJsb2cnczogaHR0cDovL3d3dy5hbm9ueXNlYy5jbg=='
logo = base64.b64decode(logo_code)
print logo
print ''
parser = ArgumentParser()
parser.add_argument("-i", dest="ip", help="Please enter the ip,for example 192.168.1.1")
parser.add_argument("-t", dest="thread_count", type=int, default=100, help="Please enter the thread number")
args = parser.parse_args()
#parser.print_help()
print 'The ip is: %s .' %args.ip
print 'The thread number is: %s .' %args.thread_count
print ''
总结
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对本站的支持。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













