0
我需要的是當我的腳本使用--history開關執行時,從常規選項中允許的唯一選項僅限於-g或-c,而不是-s或其他任何選項。如何使用argparse來限制選項
所以script.py - 歷史-g GRP1是允許的,script.py - 歷史-c cluster1中是允許的,但是script.py - 歷史-s SYS1是不允許的。 另外script.py - 歷史 - 迄今爲止被允許,所以是script.py --history --by-date -g grp1和script.py --history --by-date -c cluster1這怎麼能被ArgumentParser限制。
arg_parser = ArgumentParser(description='Description')
main_options = arg_parser.add_mutually_exclusive_group(required=True)
main_options.add_argument('--history', action='store_true',
help='Display event history.')
history_flags = arg_parser.add_argument_group(
'History Options',
description='bla'
history_flags.add_argument('--by-date', action='store_true',
help='Sort history by date, not group.')
flags = arg_parser.add_argument_group('General Options')
flags.add_argument('-g', dest='group',
help='help')
flags.add_argument('-c', dest='cluster',
help='help')
flags.add_argument('-s', dest='system',
help='help')
這將正常工作,如果常規選項只有這三個項目,但也有更多的選擇,這使得如果條件很長。如果新的通用選項被引入,代碼需要在兩個地方更新。如果有的話,我希望在ArgumentParser中有一個解決方案。 – werner