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)