Donné:
import argparse
pa = argparse.ArgumentParser()
pa.add_argument('--foo')
pa.add_argument('--bar')
print pa.parse_args('--foo 1'.split())
comment je
--foo x
, --bar y
et --foo x --bar y
ça va--foo x
ou --bar y
ça va, --foo x --bar y
n'est pasJe pense que vous recherchez quelque chose comme exclusion mutuelle (au moins pour la deuxième partie de votre question).
De cette façon, seuls foo ou bar seront acceptés, pas les deux.
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()
BTW, vient de trouver ne autre question se référant au même genre de problème.
J'espère que cela t'aides
Si vous avez besoin d'une vérification qui n'est pas fournie par le module, vous pouvez toujours le faire manuellement:
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")