鉴于:
import argparse
pa = argparse.ArgumentParser()
pa.add_argument('--foo')
pa.add_argument('--bar')
print pa.parse_args('--foo 1'.split())
Run Code Online (Sandbox Code Playgroud)
我如何能
--foo x,--bar y并且--foo x --bar y是精--foo x或者--bar y很好,--foo x --bar y不是jle*_*and 262
我认为你正在寻找互相排斥的东西(至少在问题的第二部分).
这样,只接受foo或bar,而不是两者.
import argparse
parser = argparse.ArgumentParser()
group = parser.add_mutually_exclusive_group(required=True)
group.add_argument('--foo',action=.....)
group.add_argument('--bar',action=.....)
args = parser.parse_args()
Run Code Online (Sandbox Code Playgroud)
顺便说一下,刚发现另一个问题涉及同一类问题.
希望这可以帮助
sth*_*sth 31
如果您需要模块未提供的某些检查,您可以随时手动执行:
pa = argparse.ArgumentParser()
...
args = pa.parse_args()
if args.foo is None and args.bar is None:
pa.error("at least one of --foo and --bar required")
Run Code Online (Sandbox Code Playgroud)