我需要在表单中有一个命令行
python script.py --step1=100 --step3=53 --step2=34
要求是
-
我不知道提前有多少
--stepN
标志 -
--stepN
标志的顺序没有设置,所以我不能只使用action='append'
我也对这些限制感兴趣:
-
步骤编号应该是连续的,因此如果使用
--step20
但缺少--step19
,则这是一个错误 . -
我希望将值的目标放在一个列表中 . 所以在上面的命令行示例中,我想做类似的事情
args = parser.parse_args()
args.steps # is list [100, 34, 53]
可以 argparse
采取一种agruments模式,不知何故,我可以写一个自定义动作或类型来做我想要的?我在想类似的东西
parser.add_argument('--step*',
type=CustomType,
action=CustomAction,
help='Use --step1=a --step2=b, ....')
1 回答
这不是一个好的
argparse
. 有很多关于接受广义key=value
输入和各种kludgey答案的问题 . 在大多数情况下,答案相当于自己解析字符串,从sys.argv
或extras
parse_known_args
.Create variable key/value pairs with argparse (python)
对于您对密钥形式的额外要求,这是真实的 .
在最新的这样的问题我建议使用
append
和nargs=2
所以输入将是以下形式:生产环境
你可以处理和重视你心脏的内容 .
Support arbitrary number of related named arguments with Python argparse