引数が指定されていないときにデフォルトとしてグループ引数を設定する最適な方法は何ですか?argparse:引数が指定されていないときに1つの引数をデフォルトにする
私のプログラムargparse_ex.pyを呼び出してみましょう。私はargparse.py
(引数なし)とargparse.py --a
が同じ出力を返すようにします。
引数が指定されていないときにデフォルトとしてグループ引数を設定する最適な方法は何ですか?argparse:引数が指定されていないときに1つの引数をデフォルトにする
私のプログラムargparse_ex.pyを呼び出してみましょう。私はargparse.py
(引数なし)とargparse.py --a
が同じ出力を返すようにします。
私はこれはこれを行うにはparse_args
を作るしようとするよりも簡単です
if not any([args.a, args.b, args.c]):
args.a=True
を解析した後、簡単なテストを追加します。パーサーは、すべての引数を独立して、また任意の順序で解析します。したがって、オプションのいずれかが選択されているかどうかにかかわらず、解析がすべて完了するまで、実際にはわかりません。
ここで相互排他的なグループを使用しようとしている場合は、3つの選択肢とデフォルトを持つ単純なオプションを検討してください。
つまり、あなたが異なり、これを構造化することがあります。
parser = argparse.ArgumentParser()
parser.add_argument("--thing", choices=['a', 'b', 'c'], default='a')
をあなたはそれが位置引数にする必要がある場合、[私はお勧めしません、オプションの引数はオプションする必要があります]その後、あなたのような、それを達成することができます代わりに、この:ところで
parser.add_argument("thing", choices=['a', 'b', 'c'], nargs='?', default='a')
は、あなたが適切にimport argparse
にできないことがありますので、あなたのスクリプトargparse.py
を呼び出すには悪い考えになります。
正確に何をお探しですか、ありがとう@hpaulj –