Для Забавы я должен был искать блок Motorolla HC11:
org $100
Loop nop
jsr Loop
parser = optparse.OptionParser(epilog="otherstuff")
По умолчанию format_epilog
удаляет символы новой строки (использует перенос текста), поэтому вам нужно переопределить format_epilog
в вашем синтаксическом анализаторе следующим образом.
def main():
class MyParser(optparse.OptionParser):
def format_epilog(self, formatter):
return self.epilog
parser =MyParser(epilog=
"""Examples:
check_dell -c all
check_dell -c fans memory voltage
check_dell -s
""")
...
Вот немного подробностей.
Если вы посмотрите optparse.py
, в классе OptionParser
есть метод с именем format_epilog
, который вызывается format_help
, вот фрагмент from optparse.py
def format_epilog(self, formatter):
return formatter.format_epilog(self.epilog)
def format_help(self, formatter=None):
if formatter is None:
formatter = self.formatter
result = []
if self.usage:
result.append(self.get_usage() + "\n")
if self.description:
result.append(self.format_description(formatter) + "\n")
result.append(self.format_option_help(formatter))
result.append(self.format_epilog(formatter))
return "".join(result)
По умолчанию formatter.format_epilog
использует textwrap.fill
, который, помимо прочего, удаляет символы новой строки из эпилога. Поскольку мы хотим сохранить символы новой строки, мы создаем подкласс OptionParser
и меняем поведение format_epilog
Используйте параметр Использование
:
usage = "usage: %prog [options] arg1 arg2"
parser = OptionParser(usage=usage)
Вы можете добавить больше через (просто пример):
group = OptionGroup(parser, "Dangerous Options",
"Caution: use these options at your own risk. "
"It is believed that some of them bite.")
group.add_option("-g", action="store_true", help="Group option.")
parser.add_option_group(group)
Пример вывода:
использование: [параметры] arg1 arg2
параметры: -h, --help показать это справочное сообщение и выйти из
-v, --verbose сделать много шума [по умолчанию]
-q, --quiet be vewwy quiet (я охотюсь на болванов)
-fFILE, --file = ФАЙЛ записать вывод в ФАЙЛ
-mMODE, --mode = MODE режим взаимодействия: один из «новичок», «средний уровень», [по умолчанию], «эксперт»Опасные параметры: Внимание: использование эти варианты на ваш страх и риск. Это Считается, что некоторые из них кусаются. -g Параметр группы.
Посмотрите здесь .
Есть параметр description
, который вы можете передать конструктору OptionParser
. Это позволяет вам включать произвольный текст, который появляется после использования
, но перед списком опций.
Другой способ сделать это - отключить поведение по умолчанию для -h
и распечатать собственный экран справки, который может включать экран по умолчанию:
from optparse import OptionParser
parser = OptionParser(add_help_option=False,
epilog="This can't be easily\n multilined")
parser.add_option('-h', '--help', dest='help', action='store_true',
help='show this help message and exit')
(options, args) = parser.parse_args()
if options.help:
parser.print_help()
print 'now we have an epilog'
print 'with as many lines as you wish'
sys.exit()
Это в основном то, что синтаксический анализатор делает с поведение по умолчанию add_help_option = True
, за исключением, конечно, print
s.
Но, честно говоря, я бы также предпочел способ просто добавить любое заданное количество строк описания в начале и в конце.