如果设置了其他可选值,则设置argparse可选值

时间:2019-12-26 20:18:04

标签: python argparse

我想在argparse中创建以下情况。

如果--bar为true,则

--foo必须为true。

parser.add_argument('--foo', action='store_true', default=False)
parser.add_argument('--bar', action='store_true', default=False)

然后:

% my_prog   => args.foo is False, args.bar is False
% my_prog --bar => args.foo is False. args.bar is True
% my_prog --foo => args.foo is True, args.bar is True

我可以在argparse中执行此操作,还是需要测试args.foo并相应地设置args.bar?那似乎不对。我以为有一种方法可以将参数与可以执行检查的函数相关联。

2 个答案:

答案 0 :(得分:1)

我不认为argparse可以做到这一点,但是您可以单行完成:

args.bar |= args.foo

答案 1 :(得分:0)

在解析后执行此操作很有意义。我的意思是这并不是解析本身的一部分。您只需在帮助文本和代码中写出“ --foo暗含--bar”之类的字样,

if args.foo:
    args.bar = True