При запускекак изменить "--help" в argparse
foo.py -h
ИЛИ
foo.py --help,
вы получите " help "о том, как использовать foo.py и какие аргументы он принимает. Есть ли способ, который я могу добавить к этому сообщению? Печать __doc__ например?
При запускекак изменить "--help" в argparse
foo.py -h
ИЛИ
foo.py --help,
вы получите " help "о том, как использовать foo.py и какие аргументы он принимает. Есть ли способ, который я могу добавить к этому сообщению? Печать __doc__ например?
Sure, argparse
дает много возможностей настройки. Чтобы «добавить» к справке (напечатайте больше после того, как сообщение справки сделано), например, используйте аргумент epilog
с именем.
parser = argparse.ArgumentParser(epilog="That's all she wrote", ...)
где ...
обозначает «любой другие именованные аргументы, которые вы хотите передать в парсер конструктор», сообщение о котором идет речь, будет напечатано на --help
после справки о аргументах.
См. https://docs.python.org/3/library/argparse.html за несколько тысяч слов о argparse
(написано как ссылка, но с большим количеством примеров) и https://docs.python.org/3/howto/argparse.html#id1 еще на несколько тысяч (написано как учебник). ! Может быть, половина этих документы имеют о том, как точно настроить сообщения для --help
или ошибок случаев -)
Отлично! Спасибо за вашу помощь Я использовал ** parser = argparse.ArgumentParser (описание = __ doc__, formatter_class = argparse.RawTextHelpFormatter) ** , чтобы он не пропускал "\ n" – Omar
помощи форматирования функции, argparse.ArgumentParser.format_help()
, выглядит следующим образом:
def format_help(self):
formatter = self._get_formatter() #by default, an instance of argparse.HelpFormatter
# usage
formatter.add_usage(self.usage, self._actions,
self._mutually_exclusive_groups)
# description
formatter.add_text(self.description)
# positionals, optionals and user-defined groups
for action_group in self._action_groups:
formatter.start_section(action_group.title)
formatter.add_text(action_group.description)
formatter.add_arguments(action_group._group_actions)
formatter.end_section()
# epilog
formatter.add_text(self.epilog)
# determine help from format above
return formatter.format_help()
Таким образом, вы можете
epilog
), илиHelpFormatter
(formatter_class
конструктор аргумент), чтобы настроить, каким образом эти строки преобразуются в текст справки
argparse
.
Что такое 'foo.py'? Что-то, что вы написали? –
ну, foo.py - всего лишь пример. – Omar
Что делать, если 'foo.py' пуст? Тогда 'foo.py -h' ничего не печатает. Вы должны сказать нам что-то о том, что содержит 'foo.py', чтобы получить содержательный ответ. –