argparse a pattern of arguments
我需要在表单中有一个命令行
1 | python script.py --step1=100 --step3=53 --step2=34 |
要求是
- 我不知道提前有多少个
--stepN 旗 --stepN 标志的顺序没有设置,所以我不能只使用action='append' 。
我也对这些限制感兴趣:
- 步骤号应该是连续的,所以如果使用了
--step20 ,但缺少--step19 ,这是一个错误。 - 我想要一个列表中的值的目的地。所以在上面的命令行示例中,我想做一些类似的事情
1 2 | args = parser.parse_args() args.steps # is list [100, 34, 53] |
1 2 3 4 | parser.add_argument('--step*', type=CustomType, action=CustomAction, help='Use --step1=a --step2=b, ....') |
这不是一个很好的
使用argparse(python)创建变量键/值对
这一点与您对密钥形式的附加要求是双重的。
在最近的这个问题中,我建议使用
1 | python script.py --step 1 100 --step 2 53 --step 3 34 |
生产
1 | Namespace(step=[[1,100], [2,53], [3, 24]]) |
你可以对你的心的内容进行处理和价值检验。
使用python argparse支持任意数量的相关命名参数