在Python的optparse中显示帮助信息中的换行符
我正在使用optparse模块来处理选项和参数。因为要兼容旧版本,我不能使用argparse模块。我该如何格式化我的结尾信息,以便保留换行符呢?
在下面的例子中,我希望结尾信息能够按照我想要的格式打印出来。
epi = \
"""
Examples usages:
Do something
%prog -a -b foo
Do something else
%prog -d -f -h bar
"""
parser = optparse.OptionParser(epilog=epi)
3 个回答
1
如果你正在使用用户227667的回答,但想在结尾部分替换掉%prog
,你可以使用以下方法:
class MyParser(optparse.OptionParser):
def format_epilog(self, formatter):
return self.expand_prog_name(self.epilog)
不过一般来说,如果可以的话,尽量不要使用optparse这个工具。
1
你可以对optparse.HelpFormatter.format_description这个函数进行装饰,也就是给它加上一些额外的功能:
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."""
对我来说很好用。 :)
8
请查看第一个答案:
python optparse,如何在使用输出中包含额外信息?
简单来说,就是要创建一个OptionParser的子类。
class MyParser(optparse.OptionParser):
def format_epilog(self, formatter):
return self.epilog