私はいくつかのコードは、次の2つの方法で使用することができるようにすることを使用したい:2つの位置引数の相互排他的なグループを定義する方法は?
./tester.py all
./tester.py name someprocess
すなわちいずれかall
は、いくつかの追加の文字列で指定OR name
されます。次のように
私が実装しようとしている:私は、エラー
ValueError: mutually exclusive arguments must be optional
右のそれを行うにはどのように任意のアイデアを提供します
import argparse
parser = argparse.ArgumentParser()
group = parser.add_mutually_exclusive_group()
group.add_argument('all', action='store_true', \
help = "Stops all processes")
group.add_argument('name', \
help = "Stops the named process")
print parser.parse_args()
?私はこの場合にサブパーサーを避けたいと思います。 --nameは、リストで一つの値を必要とし、リストとして保存されます渡す
group.add_argument('--all', dest=is_all, action='store_true')
group.add_argument('--name', dest=names, nargs='+')
:
なぜあなたはSUPのパーサを避けたいですか?これは、サブパーサーの問題のようです。 –
彼らはすでにsuparser上で動作します。私はそれを浅くしたいと思っています...しかし、他の解決策がない場合、私は2つのレベルでサブパーザーを試してみます。 – Alex
'all'を' --all'に、 'name'を' --name'に変更します。 – hughdbrown