LINUX.ORG.RU

Как в string.format вставить многострочную переменную?

 


0

1

Выглядит это так:

=====Шаблон tmpl.cfg=====

blabla1

{cfgdata}

blabla2


====Код====


cfg = tmpl.format(user=user, cfgdata=str(cfgdata), port=str(port))



cfgdata содержит текст с разбиением на строки («\n»)

Однострочная переменная работает, а вот такое нет.

Почему и как исправить?

★★★★★

УМВР, пистон 3.5

In [1]: mlt = '''
foo
bar
baz
'''

In [2]: print('start {v} end'.format(v=str(mlt)))
start 
foo
bar
baz
 end


P.S. кажется явное приведение к строке тут не обязательно

MrClon ★★★★★
()
Ответ на: комментарий от MrClon

Туплю, ошибка в другом месте

Qwentor ★★★★★
() автор топика

у string.format есть аргументы. как то так

string.format(end='')

q13
()
Последнее исправление: q13 (всего исправлений: 1)

Что не работает?

tmpl = """blabla1

{cfgdata}

blabla2
"""

cfg = tmpl.format(cfgdata = "blabla1.5")
>>> print(tmpl)
blabla1

{cfgdata}

blabla2

>>> print(cfg)
blabla1

blabla1.5

blabla2

Crocodoom ★★★★★
()

А зачем костылить, когда есть Mako, Jinja?

menangen ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.