Функция Python для печати использования командной строки для программы с многострочным отступом строки
Я хочу сделать этот код:
def usage():
print(
"""
Usage examples:
Test deployment:
$ fab [noinput] test deploy
Staging deployment:
$ fab [noinput] staging deploy
Production deployment:
$ fab [noinput] production deploy
""")
, чтобы выглядеть следующим образом:
def usage(): print( """ Usage examples: Test deployment: $ fab [noinput] test deploy Staging deployment: $ fab [noinput] staging deploy Production deployment: $ fab [noinput] production deploy """ )
, но это дает разные результаты. Каков наилучший способ написать это?
4 ответа
Вы можете использовать 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
Как говорится в документах:
Это может быть использовано для того, чтобы строки с тремя кавычками выстроились в линию с левым краем дисплея, все еще представляя их в исходном коде с отступом.
Для небольших фрагментов текста я обычно закрываю двойные кавычки и открываю их на следующей строке. Затем вам придется добавлять новые строки самостоятельно, используя \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"
)
Когда мне нужно использовать текст-текст или справочный текст о программе или модуле, в начале исходного кода есть еще одна опция:
#!/bash/python
"""
Usage examples, Test deployment,
and any other text you like
"""
И когда мне нужно распечатать его где-нибудь в программе:
print(`__doc__`)
Также вы можете использовать метод .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'
]))