多くのアクションを実行するPythonスクリプトを作成したので、多くのオプションがあります。そこで、共通のオプションのグループ化に親パーサーも使用するサブパーサーに分割しました。
すべてのコマンドのヘルプとそのオプションを表示するヘルプオプションが必要ですが、format_helpメソッドをオーバーライドせずに可能ですか?
同様の質問を見ましたが、グループ化は私にとって重要ではありません。そこにオプションが必要なだけです。
例えば:
general_group = argparse.ArgumentParser(formatter_class=argparse.ArgumentDefaultsHelpFormatter,add_help=False)
general_group.add_argument('--threads', action='store_true', default=False)
second_group = argparse.ArgumentParser(formatter_class=argparse.ArgumentDefaultsHelpFormatter,add_help=False)
second_group.add_argument('--sleep', action='store', default=60, type=int)
parser = argparse.ArgumentParser(formatter_class=argparse.ArgumentDefaultsHelpFormatter)
subparsers=parser.add_subparsers(dest='action')
subparsers.add_parser('Restart',parents=[general_group,second_group])
subparsers.add_parser('Start',parents=[general_group])
args = parser.parse_args()
この場合、誰かが./script.py -hを実行すると、ヘルプにスレッドオプションが表示されるようにしたいと思います。