Python利用装饰器click处理解析命令行参数
本文介绍如何使用Python的click模块通过装饰器方式解析命令行参数。对比传统脚本与命令行模式,展示基于click.option的简洁实现,包括参数类型定义、默认值设置及交互提示,并提供完整的代码示例与执行结果分析。
简介
在Python开发与测试环节,通常存在两种运行模式:脚本模式与命令行模式。脚本模式在代码开发与调试阶段使用便捷。目前主流的命令行参数解析工具包括sys.argv、getopt和argparse,此外还可以借助装饰器机制来解析命令行参数,即采用click模块。
基本形式
python main.py -a v1 -b v2 ...
历史攻略
Python:解析命令行参数
之前的案例
argparse 将提供的选项默认视为字符串,新增int类型的案例
# -*- coding: utf-8 -*-
# time: 2022/8/31 16:20
# file: argparse_demo1.py
# author: tom
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("--name", help="添加的第1个参数name,姓名。")
parser.add_argument("--age", help="添加的第2个参数age,年龄。", type=int)
args = parser.parse_args()
print(f"args.name:{args.name}")
print(f"type:{type(args.name)}")
print("*" * 50)
print(f"args.age:{args.age}")
print(f"type:{type(args.age)}")改造成click装饰
层次更清晰、明了。
# -*- coding: utf-8 -*-
# time: 2022/9/4 16:09
# file: cmd_demo.py
# 公众号: 玩转测试开发
import click
@click.command()
@click.option('--name', prompt='姓名:', help='姓名')
@click.option('--age', prompt='年龄:', default=25, help='年龄,默认值25')
def args_data(name, age):
print(f"name:{name}")
print(f"type:{type(name)}")
print("*" * 80)
print(f"age:{age}")
print(f"type:{type(age)}")
if __name__ == '__main__':
args_data()依次执行:
python cmd_demo.py --help
python cmd_demo.py --name=tom --age=30
python cmd_demo.py --name ken --age 20执行结果:
(venv) D:\>python cmd_demo.py --help Usage: cmd_demo.py [OPTIONS] Options: --name TEXT 姓名 --age INTEGER 年龄,默认值25 --help Show this message and exit. (venv) D:\>python cmd_demo.py --name=tom --age=30 name:tom type:<class 'str'> ************************************************* age:30 type:<class 'int'> (venv) D:\>python cmd_demo.py --name ken --age 20 name:ken type:<class 'str'> ************************************************* age:20 type:<class 'int'>
到此这篇关于Python利用装饰器click处理解析命令行参数的文章就介绍到这了,更多相关Python装饰器click解析命令行参数内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









