编写安全或其他脚本工具时,需要终端执行一些参数,保证可靠以及规范,可采用docopt进行实现,对于干扰参数或错误输入进行过滤和报错。实现较为完美的控制台参数控制。
docopt实现样例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| from docopt import docopt
def main(): USAGES = """xxxxxx POC.
Usage: xxxxxx.py (--flow-num=<flownum> | --file-size=<file_size> [--unit=<unit>]) [--file-path=<filepath>] [--log-level=<log_level>] xxxxxx.py (-h | --help) xxxxxx.py --version
Example: xxxxxx.py --flow-num=1000 # 生成1000xxxxxx xxxxxx.py --file-size=50 --unit=MB # 生成50M xxxxxx文件
Options: -h --help 显示帮助信息 --version 显示版本 --flow-num=<flownum> 生成xxxxxx --file-size=<file_size> 生成xxxxxx大小,需要搭配--unit指定单位 --unit=<unit> 生成xxxxxx大小单位默认MB/M [default: MB] --file-path=<filepath> 生成的xxxxxx路径 --log-level=<entity_type> 记录xxxxxx日志级别 [DEBUG|INFO|WARNING|ERROR|CRITICAL] [default: INFO] """ arguments = docopt(USAGES, options_first=True, version="xxxxxx 1.0")
flow_num = arguments.get('--flow-num') file_size = arguments.get('--file-size') unit = arguments.get('--unit') file_path = arguments.get('--file-path') log_level = arguments.get('--log-level') if __name__ == '__main__': main()
|