我使用optparse来处理命令行参数,我遇到了一个有多个空格行的问题,用于optparse帮助消息。
group.add_option(
'-H',
'--hostname',
action='store',
dest='hostname',
help='Specify the hostname or service/hostname you want to connect to\
If specified -f/--hostfile will be ignored',
metavar='HOSTNAME',)
所以我在帮助消息中的“to”之后的帮助消息中得到了几个空格(因为缩进)。
Specify the hostname or service/hostname you want to connect
to If specified -f/--hostfile will be ignored
我可以删除帮助消息第二行中的前导空格,但这将是unpythonic。
是否有一些pythonic方法可以删除帮助消息中的空格。
答案 0 :(得分:3)
如果括在括号中,可以连接多行字符串。所以你可以像这样重写:
group.add_option(
'-H',
'--hostname',
action='store',
dest='hostname',
help=('Specify the hostname or service/hostname you want to connect to. '
'If specified -f/--hostfile will be ignored'),
metavar='HOSTNAME',)
答案 1 :(得分:0)
Austin Phillips的回答涵盖了你希望你的字符串连接的情况。如果你想在那里保留换行符(即你想要多行帮助字符串)。查看textwrap module。特别是,dedent功能。
使用示例:
>>> from textwrap import dedent
>>> def print_help():
... help = """\
... Specify the hostname or service/hostname you want to connect to
... If specified -f/--hostfile will be ignored
... Some more multiline text here
... and more to demonstrate"""
... print dedent(help)
...
>>> print_help()
Specify the hostname or service/hostname you want to connect to
If specified -f/--hostfile will be ignored
Some more multiline text here
and more to demonstrate
>>>
来自文档:
textwrap.dedent(文本)
从文本的每一行中删除任何常见的前导空格。
这可以用来使三引号字符串与显示的左边缘对齐,同时仍然以缩进的形式在源代码中显示它们。