在positonal选项argparse之后的可选子选项

时间:2017-01-04 21:26:10

标签: python argparse

我正在努力实现这样的目标:

  

python main.py --severity high --start_date 10/12/2016

     

python main.py --name samuel

此处,参数 - start_date arg 仅在前一个参数为--severity时才有效。如果我们有 - 名称而不是 - 严重性。 argparse应该返回错误。 我该如何实现这一目标?我找了一会儿,找不到我想做的事情。

1 个答案:

答案 0 :(得分:1)

不幸的是,argparse没有此类功能,因此您必须明确地执行此操作。这样的事情应该有效:

...
args = parser.parse_args()
if getattr(args, 'start_date', None) and not getattr(args, 'severity', None):
    parser.print_help()
    parser.exit(1, "error message")