python argparse根据已有的命令行参数创建新的不同的参数

python argparse根据已有的命令行参数创建新的不同的参数

就是多调用几次parser.parse_args()就行,解析参数后用条件语句进行判断

import argparse

parser = argparse.ArgumentParser(
        description="you should add those parameter"
    )  # 这些参数都有默认值,当调用parser.print_help()或者运行程序时由于参数不正确(此时python解释器其实也是调用了pring_help()方法)时,                                                                     # 会打印这些描述信息,一般只需要传递description参数,如上。
parser.add_argument('--optimizee',
                        default='quad',
                        help="The optimizee for your meta optimizer"
                        )  # 默认情况下,会作为字符串读入,所以不用再指定type
parser.add_argument('--gpuid', nargs="+", type=int,
                        default=0)  # 步骤二,后面的help是我的描述
parser.add_argument(
        "--n_tests",
        type=int,
        default=100,
        help="text number of normal optimizer in test.py fit_normal function")
parser.add_argument(
        "--n_epochs",
        type=int,
        default=100,
        help="epochs of each test in test.py fit_normal function,\
              for quad, default is 100, mnist:200")
args = parser.parse_args()

if args.optimizee == "quad":
    parser.add_argument("--out_mul",type=float, default=1.0,)
elif args.optimizee == "mnist":
    parser.add_argument("--out_mul",type=float, default=0.1,)
args = parser.parse_args()

print(args)

输出

Namespace(optimizee='quad', gpuid=0, n_tests=100, n_epochs=100, out_mul=1.0)

但是这么做无法在命令行输入里面解析out_mul参数为了解决这个问题,需要使用add_subparsers处理多个功能使用多个不同参数,详见这个博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值