Python argparse, как добавить связанную группу опций, которые являются необязательными - PullRequest
0 голосов
/ 22 января 2020

Я пытаюсь добавить группу параметров, связанных друг с другом, в существующий скрипт, который имеет необязательные аргументы и позиционные аргументы для выбора команды для запуска.

import argparse
parser = argparse.ArgumentParser(prog='test')

parser.add_argument("-opt1", default="A", type=str)
parser.add_argument("-opt2", default="B", type=str)
parser.add_argument("-opt3", default="C", type=str)

subparsers = parser.add_subparsers()
cmd1 = subparsers.add_parser("cmd1", help="run cmd1")
cmd1.add_argument("-cmd1-opt1", default="cmd1-A")
cmd1.add_argument("-cmd1-opt2", default="cmd1-B")


cmd2 = subparsers.add_parser("cmd2", help="run cmd2")
cmd2.add_argument("-cmd2-opt", type=int)
args = parser.parse_args()

print(args)

Например, я хотел бы добавить группу новых дополнительных опций opt4, opt5, opt6, opt7, которые связаны между собой. Что-то вроде opt5 является допустимой опцией, только когда opt4 имеет какое-либо значение.

Я мог бы добавить все опции по отдельности в качестве необязательных аргументов, но я ищу какой-то лучший способ сделать это, используя нужные мне опции. добавить связаны друг с другом.

...