いくつかの必須パラメーターといくつかのオプションパラメーターを持つプログラムへの引数が欲しいのですが。このようなもの:
[--print text [color [size]]
したがって、これらのいずれかを渡すことができます。
mycommand --print hello
mycommand --print hello blue
mycommand --print hello red 12
これらは複数存在する可能性があるため、単一のadd_argumentである必要があります。例えば:
[--print text [color]] [--output filename [overwrite]]
私は私が望むものに近い議論を達成することができます:
>>> parser = argparse.ArgumentParser()
>>> act = parser.add_argument('--foo', nargs=3, metavar=('x','y','z'))
>>> act = parser.add_argument('--bar', nargs='?')
>>> act = parser.add_argument('--baz', nargs='*')
>>> parser.print_help()
usage: [-h] [--foo x y z] [--bar [BAR]] [--baz [BAZ [BAZ ...]]]
optional arguments:
-h, --help show this help message and exit
--foo x y z
--bar [BAR]
--baz [BAZ [BAZ ...]]
しかし、完全ではありません。argparseでこれを行う方法はありますか?私はそれらをすべて作成できることを知っていますnargs="*"
が、-helpはオプションの引数の名前をリストしません。nargs="*"
metavarのタプルを渡すと、argparseは例外をスローします。