一、背景
通常我们启动,某个服务,服务分为dev prd 环境, 分别对应不同的端口,不同的数据库等,此时启动时名命令行启动需要输入这些参数。
二、应用示例
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--e', type=str, choices=('dev', 'prd'), help='start service flag')
parser.add_argument("--port", type=int, default=8080, help="service port")
parser.add_argument("--door", type=int, choices=(1,6), help="service door")
parser.add_argument("--d", dest='debug', help="start service debug")
parser.add_argument("--username", action='store_true', help="service username")
parser.add_argument('--age', action="store", type=int, default=45, dest="userage", help="userage")
parser.add_argument("--queue", nargs='+', type=str, default="tasks", help="service tasks")
opt = parser.parse_args()
print(opt)
print(opt.port)
- 终端命令
python serve.py --e dev --port 3306 --d debug --age 18 --queue sms_tasks, email_tasks
- 输出结果
Namespace(debug='debug', door=None, e='dev', port=3306, queue=['sms_tasks,', 'email_tasks'], userage=18, username=False)
3306
- 注:上述如不理解,建议一次增加行数调试
三、add_argument()方法
-
name or flags
必选参数名或者可选参数标识符,它必须作为add_argument()方法的第一个参数。 -
dest
这个参数相当于把位置参数或者选项参数关联到一个特定的名字 -
action
表示值赋予键的方式,这里用到的是bool类型,action意思是当读取的参数中出现指定参数的时候的行为 -
help
参数的说明信息 -
required
说明参数是否必须进行输入,只支持可选参数。 -
type
指定命令行参数数据类型 -
choices
说明命令行参数的取值范围,它的值列表,元组。
choices列表中元素的类型应该与type批定的类型相兼容 -
nargs
指定这个参数后面的value有多少个,默认为1,设定为数字2,表示接受2个value;
设定为’?‘那么就只接受1个或者0个value,当0个value是默认值是default的value;
设定为’*’ 后面可接多个value;
设定为’+’ 至少有一个value; -
default
必选参数和可选的参数的默认值。