Нажмите форматирование справки командной строки в несколько строк

Я использую библиотеку под названием click для создания приложений командной строки и определения описания код выглядит следующим образом

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

Так что все хорошо, пока я не попытаюсь иметь несколько строк.

Естественно я попробовал это

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

Но это не заканчивается хорошо. Текст толкается повсюду и выглядит хорошо. Я попытался добавить \n после каждой строки, но это просто добавило к большому пространству, где результат в конечном итоге выглядел так:

Output:
       hi

       hi

       hi

По этой причине этого не может быть, потому что у меня есть искусство ascii, которому нужно, чтобы линии были близко друг к другу.

1 ответ

Решение

Проблема со второй попыткой состоит в том, что линия начинается с первой """ а затем включает в себя весь текст (включая пробелы) до следующего """, Итак, когда вы делаете это:

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

У вас есть 1 пробел перед первым 'привет' и затем 9 пробелов перед следующим. Решение состоит в том, чтобы либо уронить первую строку вниз на одну строку, либо просто удалить 8 пробелов перед другими строками. Это должно иметь одинаковый отступ для каждого "привета", когда он печатается:

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

РЕДАКТИРОВАТЬ: Видимо, нажмите переформатировать текст, прежде чем он напечатает его, но в соответствии с добавлением документов \b следует отключить это поведение.

Другие вопросы по тегам