Я хочу использовать argparse для создания инструмента с подкомандой. Возможный синтаксис может быть таким:
/tool.py download --from 1234 --interval 60
/tool.py download --build 1432
/tool.py clean --numbers 10
Итак, я хотите использовать argparse для реализации:
Но я не нашел способ связать '--from' и '--internal' с группой, а затем сделать группу взаимоисключающей с помощью '--build'.
Ниже приведен мой текущий код, и он делает только '- from 'и' --build 'исключают друг друга. Ни убедитесь, что «--from» и «--interval» объединяются, ни «--interval» и «--build» являются взаимоисключающими.
parser = argparse.ArgumentParser(description='A Tool')
subparsers = parser.add_subparsers(help='sub-command help')
#create the parser for the 'download' command
download_parser = subparsers.add_parser('download', help='download help')
download_parser.add_argument('--interval', dest='interval', type=int,help='interval help')
group = download_parser.add_mutually_exclusive_group()
group.add_argument('--from',type=int, help='from help')
group.add_argument('--build', type=int, help='interval help')
Например,
/ tool. py загрузка --from 1234
не должна быть разрешена, потому что '--from' должен работать с '--interval'. Но мой код принимает это молча.
И
/tool.py загрузка --interval 1234 --build 5678
не должна быть разрешена, потому что '--build' не может использоваться с другим аргументом. Но мой код тоже принимает это.
Мы будем очень признательны за любые предложения. Спасибо.