12

(たとえば) 3 つの引数を持つスクリプトが必要です。

import argparse
parser = argparse.ArgumentParser()
parser.add_argument("--a",help="Argument a")
parser.add_argument("--b",help="Argument b")
parser.add_argument("--c",help="Argument c")
args= parser.parse_args()

ただし、いつでも 'a'、'b'、または 'c' のいずれかのみを指定できるようにします。たとえば、'a' は指定できますが、'b' または 'c' は指定できません。私はそれを達成するだろうか?

4

2 に答える 2

22

argpase を使用すると、add_mutually_exclusive_group()メソッドを使用してこれを指定できます。

import argparse
parser = argparse.ArgumentParser()
g = parser.add_mutually_exclusive_group()
g.add_argument("--a",help="Argument a")
g.add_argument("--b",help="Argument b")
g.add_argument("--c",help="Argument c")
args= parser.parse_args()
于 2012-11-09T14:40:35.207 に答える
1

add_mutually_exclusive_group()上記を使用して、argparseすでにレベルでこれを確認してください。

エラーメッセージなどをより詳細に制御したい場合は、もちろん後で結果を確認できます。

if len([x for x in args.a, args.b, args.c if x is not None]) > 1:
  raise Exception("Not allowed!")
于 2012-11-09T14:45:03.323 に答える