format
- это метод строкового объекта, и он будет работать так же хорошо со строкой, содержащейся в переменной, как и с жестко заданной строковой константой.
Таким образом, вы можете иметь, например:
template.txt
this is a
{0} {1}
и используйте это, чтобы прочитать его и подставить значения:
with open("template.txt") as f:
template = f.read().strip()
colour = "red"
animal = "lion"
print(template.format(colour, animal))
Дает:
this is a
red lion
Вы также можете используйте ключевые слова для замены, которые дадут вам больше гибкости в упорядочивании цвета и животного (или, действительно, для того, чтобы один и тот же знак появлялся несколько раз или не появлялся вообще).
Вот шаблон: template.txt
This is a {colour} {animal}
Замена с использованием ключевых слов:
with open("template.txt") as f:
template = f.read().strip()
colour = "red"
animal = "lion"
print(template.format(colour=colour, animal=animal))
дает:
This is a red lion
Но теперь, в качестве примера, вот шаблон, который будет подходящим для языка Wel sh, где порядок будет меняться местами:
template.txt
{animal} {colour} ydy hon
Теперь замените аналогично:
print(template.format(colour="goch", animal="draig"))
draig goch ydy hon
Не имело значения, что в вашем вызове формата элементы были в другом порядке в коде, потому что они совпадали с релевантным Ключевые слова ant.
Опять же, это не отличается от того, что вы можете делать с жестко заданными строковыми константами.