我正在用optparse模块制作一个shell脚本,只是为了好玩,所以我想打印一个漂亮的ASCII绘图来代替描述。
结果发现这个代码:
parser = optparse.OptionParser(
prog='./spill.py',
description=u'''
/ \
vvvvvvv /|__/|
I /O,O |
I /_____ | /|/|
J|/^ ^ ^ \ | /00 | _//|
|^ ^ ^ ^ |W| |/^^\ | /oo |
\m___m__|_| \m_m_| \mm_|
''',
epilog='''
Las cucarachas lograron con exito su plan, echando a los pestilentes sangre caliente de sus cajas de cemento.
Ahora el hombre es una especie errante en el espacio, un vagabundo errante en las estrellas.''')
呈现如下:
$ ./bin/spill.py -h
Usage: ./spill.py [options]
/ \ vvvvvvv /|__/|
I /O,O | I /_____ | /|/|
J|/^ ^ ^ \ | /00 | _//| |^ ^ ^ ^ |W| |/^^\ | /oo |
\m___m__|_| \m_m_| \mm_|
Options:
-h, --help show this help message and exit
#.... bla bla bla, etc
我尝试过各种斜线、换行和ESPACE组合,但都没有成功。
你能帮我正确地展示托托罗吗?
最佳答案
默认格式化程序调用此方法:
def format_description(self, description):
if description:
return self._format_text(description) + "\n"
else:
return ""
如果子类
IndentedHelpFormatter
,则可以删除导致问题的IndentedHelpFormatter
调用:import optparse
class PlainHelpFormatter(optparse.IndentedHelpFormatter):
def format_description(self, description):
if description:
return description + "\n"
else:
return ""
parser = optparse.OptionParser(
prog='./spill.py',
formatter=PlainHelpFormatter(),
description=u'''
/ \
vvvvvvv /|__/|
I /O,O |
I /_____ | /|/|
J|/^ ^ ^ \ | /00 | _//|
|^ ^ ^ ^ |W| |/^^\ | /oo |
\m___m__|_| \m_m_| \mm_|
''',
epilog='''
Las cucarachas lograron con exito su plan, echando a los pestilentes sangre caliente de sus cajas de cemento.
Ahora el hombre es una especie errante en el espacio, un vagabundo errante en las estrellas.''')
(opt,args) = parser.parse_args()
关于python - optparse描述中的ASCII艺术,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3543386/