单击命令行帮助跨多行格式化

时间:2015-10-05 20:26:14

标签: python python-click

我使用名为click的库来制作命令行应用程序并定义代码看起来像这样的描述

def cli:
    """ Description goes here """

所以一切顺利,直到我尝试多行。

当然我试过这个

def cli:
     """ hi
         hi
         hi"""

但这并没有结束。文本被推到了所有地方并且看起来很好看。我尝试在每一行之后添加\ n但它只是添加到一个大的空间,输出最终看起来像这样:

Output:
       hi

       hi

       hi

这种情况不可能发生,因为我有ascii艺术,需要线条紧密相连。

1 个答案:

答案 0 :(得分:2)

第二次尝试的问题是该行从第一个"""开始,然后包括所有文本(包括空格),直到下一个"""。所以,当你这样做时:

def cli:
     """ hi
         hi
         hi"""

在第一个'hi'之前有1个空格,然后在下一个之前有9个空格。解决方案是将第一行放下一行,或者在其他行之前删除8个空格。打印时,每个'hi'应该有一致的缩进:

def cli:
    return """
         \b 
         hi
         hi
         hi"""

编辑:显然在打印之前单击重新格式化文本,但根据the docs添加\b应该禁用该行为。