我正在使用argparse並且我有各種各樣的具有自己選項的組。在argparse中自定義組間幫助
現在與- 幫助選項我不想顯示默認情況下的所有選項。 --help僅顯示一組組選項。
其他組選項應該基於其它幫助選項顯示,爲--help_1
,--help_2
:
例如:
--help' to show Group 2 and 3
--help_1' to show Group 11 and 12
--help_2' to show Group 22 and 23
我知道,我們可以使用禁用默認--help選項add_help = False但我如何才能顯示只選擇特定組的幫助。
我們可以從使用_action_groups屬性解析器組的列表,但他們沒有公開任何print_help()的選擇,因爲這樣的。
我的示例代碼:
parser = argparse.ArgumentParser(add_help=False)
parser.add_argument('--help_a', action='store_true')
parser.add_argument('--help_b', action='store_true')
group1 = parser.add_argument_group("Feature 1")
group1.add_argument('--foo1')
group2 = parser.add_argument_group("Feature 2")
group2.add_argument('--foo2')
group3 = parser.add_argument_group("Feature 3")
group3.add_argument('--foo3')
# TODO: --help_a to only print "Feature 1" groups help
# and --help_b to print Feature 2 and 3's help.
編輯:使用subparser
並加入解析器(而不是組)將解決上述。但subparser不適合我的情況,因爲我總是解析它,我只需要定製幫助來顯示。
爲什麼不通過'less'? 'python command.py --help |少' –
這在我看來並不正確。我不希望外部用戶使用我的API或腳本來解析他們。腳本應該自行處理。 – baky
我不明白。你能否添加更多的信息你正在使用什麼組,以及爲什麼你想要顯示不同的幫助頁面? –