使用python时在帮助消息中显示换行符';s光路
我正在使用optpasse模块进行选项/参数解析。由于向后兼容的原因,我不能使用argparse模块。如何格式化我的epilog消息以便保留换行符 在下面的示例中,我希望将尾声打印为格式化使用python时在帮助消息中显示换行符';s光路,python,optparse,Python,Optparse,我正在使用optpasse模块进行选项/参数解析。由于向后兼容的原因,我不能使用argparse模块。如何格式化我的epilog消息以便保留换行符 在下面的示例中,我希望将尾声打印为格式化 epi = \ """ Examples usages: Do something %prog -a -b foo Do something else %prog -d -f -h bar """ parser = optparse.OptionParser(epilog=ep
epi = \
"""
Examples usages:
Do something
%prog -a -b foo
Do something else
%prog -d -f -h bar
"""
parser = optparse.OptionParser(epilog=epi)
见第一个答案: 基本答案是将OptionParser子类化
class MyParser(optparse.OptionParser):
def format_epilog(self, formatter):
return self.epilog
您可以修饰optpass.HelpFormatter.format_描述函数:
from optparse import HelpFormatter as fmt
def decorate(fn):
def wrapped(self=None, desc=""):
return '\n'.join( [ fn(self, s).rstrip() for s in desc.split('\n') ] )
return wrapped
fmt.format_description = decorate(fmt.format_description)
因此,您可以获得一个帮助描述,它可以执行以下操作:
my_desc = """This is some text
that wraps to some more stuff.\n
\n
And this is a new paragraph.\n
\n
This line comes before\n
this line but not in a different paragraph."""
为我工作。:) 对于正在使用user227667答案但希望在结束语中替换
%prog
的用户,您可以使用:
class MyParser(optparse.OptionParser):
def format_epilog(self, formatter):
return self.expand_prog_name(self.epilog)
但一般来说,如果可能的话,不要使用optpass。谢谢。这正是我想要的。您如何修改与选项关联的帮助消息?那么这个答案就行不通了,因为它只会更改epilog的格式。还有一个format_help()方法也可以被覆盖。这只是一个旁注。为什么不能使用argparse?Jakob,当我使用Python2.6时,有没有一种方法可以使用argparse,并希望与可能使用Python2.7+或可能不使用Python2.7+的人分享?只需将其包括在本地^^