2017-12-14 14 views
0

せずに、必須の引数を追加 -はargparseおそらくコードスニペットを次に示しadd_subparsers

parser = argparse.ArgumentParser() 
#External Modules 
parser.add_argument('--foo', action='store_true', dest='FOO_OPTION', help='builds foo') 
parser.add_argument('--bar', action='store_true', dest='BAR_OPTION', help='builds bar') 
parser.add_argument('--xyz', action='store_true', dest='XyZ_OPTION', help='builds xyz') 

program.py --foo 
program.py --bar 
program.py --xyz 

作品完璧にコマンドを呼び出します。

しかし、

program.py --foo -d /usr/local/include 

この追加arguementはちょうど--fooのためであるような--fooのためのもう一つの必須arguementがあります。どのようにしてこれを可能な限り簡単に達成することができますか?

+1

これを行うための 'argparse'メカニズムはありません。これを解析した後にテストする必要があります。 – hpaulj

答えて

0

引数には、nargs引数を使用できます。例えば

parser.add_argument('--foo', nargs=2) 
args = parser.parse_args() 
print(args.foo) 

そして、python program.py --foo bar baz['bar', 'baz']与えます。

ダッシュのために-dをfooの値として使用できないという警告があります。

+0

デフォルトの 'store'と' nargs'だけで、 '--foo'は1つの引数を必要とします。 'args.foo'はデフォルトでは' None'です。 – hpaulj

+0

add_subparsersヘルプを使用しますか? add_subparserの私の唯一の懸案事項は、ただ一つの引数(foo)のために、他のすべての引数(barとxyz)を変更する必要があるということです。私の理解は正しいのですか? – infoclogged

関連する問題