運行腳本時,必須通過-g
或-s
。使用下面的代碼,它會向傳遞給它的參數拋出以下錯誤。Python - argparse要求或者
{~/nsnitro}-> ./sg-arg.py status -g test.server
usage: sg-arg.py [-h] (-g SERVICEGROUP | -s SERVICENAME) {status} ...
sg-arg.py: error: one of the arguments -g/--servicegroup -s/--servicename is required
代碼:
parser = argparse.ArgumentParser()
subparsers = parser.add_subparsers()
check = subparsers.add_parser('status')
check = parser.add_mutually_exclusive_group(required=True)
check.add_argument('-g', '--servicegroup', action='store', help='servicegroup name', type=servicegroup_status)
check.add_argument('-s', '--servicename', action='store', help='service name', type=servicegroup_status)
args = parser.parse_args()
看來您要將互斥組添加到主分析器,而不是分析器。例如在這種情況下,'./sg-arg.py -g test.server status'將是正確的調用。 – mgilson