以下功能可以很好地打印出我编写的程序的帮助消息。它将打印出多行字符串消息,并通过一些示例来描述命令行用法:不幸的是,为了使消息在输出中看起来不错,当前,代码块看起来很丑陋,字符串消息使代码的缩进看起来不正确。有没有一种方法可以改进代码,使其更具可读性,类似于下面的代码(缩进更容易理解,它只是一个示例),其中缩进更易读?
def usage():
print(
"""
Usage examples:
Test deployment:
$ fab [noinput] test deploy
Staging deployment:
$ fab [noinput] staging deploy
Production deployment:
$ fab [noinput] production deploy
""")
如何在提高可读性的同时仍产生在输出中看起来不错的结果?
#1 楼
您可以使用textwrap.dedent
从多行字符串的所有行的开头删除公用空格:>>> import textwrap
>>> print(textwrap.dedent(
"""
Usage examples:
Test deployment:
$ fab [noinput] test deploy
Staging deployment:
$ fab [noinput] staging deploy
Production deployment:
$ fab [noinput] production deploy
"""
))
Usage examples:
Test deployment:
$ fab [noinput] test deploy
Staging deployment:
$ fab [noinput] staging deploy
Production deployment:
$ fab [noinput] production deploy
如文档中所述:
可用于使三引号字符串与显示的左边缘对齐,同时仍将它们以缩进形式显示在源代码中。
#2 楼
对于较小的文本,我倾向于只将双引号引起来,然后在下一行将其打开。然后,您必须使用\n
自己添加换行符:print(
"Usage examples:\n"
"Test deployment:\n"
" $ fab [noinput] test deploy\n"
"Staging deployment:\n"
" $ fab [noinput] staging deploy\n"
"Production deployment:\n"
" $ fab [noinput] production deploy\n"
)
评论
\ $ \ begingroup \ $
如果您不喜欢在每个字符串中添加'\ n',也可以执行print(“用法示例:”,“测试部署:”,“ $ fab [noinput]测试部署”,…,sep ='\ n')
\ $ \ endgroup \ $
–尼克·马特奥(Nick Matteo)
17年1月23日在16:29
#3 楼
当我需要有关程序或模块的使用情况文本或帮助文本时,在源代码的开头还有另一个选择:#!/bash/python
"""
Usage examples, Test deployment,
and any other text you like
"""
需要在程序中的某个位置打印它:
print(`__doc__`)
#4 楼
另外,您可能想使用.join()
方法:def usage():
print('\n'.join([
'Usage examples:',
'Test deployment:',
' $ fab [noinput] test deploy',
'Staging deployment:',
' $ fab [noinput] staging deploy',
'Production deployment:',
' $ fab [noinput] production deploy'
]))
评论
stackoverflow.com/questions/1412374/…正在meta
上讨论