Предлагаемый дубликат, Python's argparse choices constrained printing представляет относительно сложное решение - обычай HelpFormatter
. Или обычай type
.
Чем выше вопрос голосование/ответы является Python argparse: Lots of choices results in ugly help output
Вы найдете больше с [argparse] choices
поиска.
Простейшим решением является установка параметра metavar
. None
отображает ничего в слоте choices
, но вы, вероятно, хотите короткое слово
In [8]: styles=['one','two','three','four']
In [10]: parser = argparse.ArgumentParser()
In [11]: parser.add_argument('--styles', metavar='STYLE', choices=styles,
...: help='list of choices: {%(choices)s}')
Out[11]: _StoreAction(option_strings=['--styles'], dest='styles', nargs=None, const=None, default=None, type=None, choices=['one', 'two', 'three', 'four'], help='list of choices: {%(choices)s}', metavar='STYLE')
In [12]: parser.print_help()
usage: ipython3 [-h] [--styles STYLE]
optional arguments:
-h, --help show this help message and exit
--styles STYLE list of choices: {one, two, three, four}
Я включил %(choices)s
в помощь, чтобы перечислить их там. Конечно, вы могли бы разместить свое собственное резюме. Длинный список подходит лучше, чем в usage
.
Об этом уже спрашивали. Вы должны использовать специальный форматировщик справки, как показано в связанном вопросе. – Bakuriu
Спасибо, я не получил никаких результатов в Google. Однако оба решения в связанном ответе слишком сложны. Я просто удалю выборы. – vedar
Мое предложение: не используйте 'выборы' и вручную проверяйте, является ли выбранная опция выбором. Предоставьте вариант, например '--help-styles', который напечатает список имен доступных стилей, чтобы пользователи могли получить доступ к списку поддерживаемых вариантов. – Bakuriu