Да, argparse
с add_subparsers()
.
Все это хорошо объяснено в разделе Подкоманды .
Копирование одного из примеров оттуда:
>>> parser = argparse.ArgumentParser()
>>> subparsers = parser.add_subparsers()
>>> checkout = subparsers.add_parser('checkout', aliases=['co'])
>>> checkout.add_argument('foo')
>>> parser.parse_args(['checkout', 'bar'])
Namespace(foo='bar')
Редактировать: К сожалению, нет собственной сгенерированной специальной команды help
, но вы можете получить подробное справочное сообщение (которое вам, кажется, нужно) с помощью -h
или --help
, как обычно после команда:
$ ./MyApp.py branch --help
Под многословным я не имею в виду, что это похоже на справочную страницу, это как любая другая --help
помощь: перечисление всех аргументов и т. Д. *
Пример:
>>> parser = argparse.ArgumentParser()
>>> subparsers = parser.add_subparsers(description='Sub description')
>>> checkout = subparsers.add_parser('checkout', description='Checkout description')
>>> checkout.add_argument('foo', help='This is the foo help')
>>> parser.parse_args(['checkout', '--help'])
usage: checkout [-h] foo
Checkout description
positional arguments:
foo This is the foo help
optional arguments:
-h, --help show this help message and exit
Если вам нужно, легко реализовать команду help
, которая перенаправляет на --help
.