В модуле String класс шаблона позволяет нам создавать упрощенный синтаксис для спецификации вывода. В формате используются имена-заполнители, образованные символом $ с допустимыми идентификаторами Python (буквенно-цифровые символы и символы подчеркивания). Окружение заполнителя фигурными скобками позволяет сопровождать его большим количеством буквенно-цифровых букв без пробелов. Запись $$ создает один экранированный $.
Шаблон строки Python:
Шаблон строки Python создается путем передачи строки шаблона его конструктору. Он поддерживает замены на основе$. Этот класс имеет 2 ключевых метода:
- замена(сопоставление, **kwds): Этот метод выполняет замены с использованием словаря с процессом, аналогичным объектам сопоставления на основе ключей. аргументы ключевых слов также могут использоваться для той же цели. В случае, если сопоставление на основе ключа и аргументы ключевого слова имеют один и тот же ключ, он выдает ошибку типа. Если ключи отсутствуют, он возвращает ошибку ключа.
- safe_substitute(сопоставление, **kwds): Поведение этого метода аналогично поведению метода замены, но он не выдает ошибку ключа, если ключ отсутствует, а возвращает заполнитель в строке результата.
Метод substitute() вызывает ошибку ключа, когда заполнитель не указан в словаре или аргументе ключевого слова. Для приложений в стиле слияния почты данные, предоставленные пользователем, могут быть неполными, и метод safe_substitute() может быть более подходящим-он оставит заполнители без изменений, если данные отсутствуют:
Ниже приведено несколько простых примеров.
Пример 1:
# A Simple Python template example
from string import Template
# Create a template that has placeholder for value of x
t = Template('x is $x')
# Substitute value of x in above template
print (t.substitute({'x' : 1}))
Выход:
x равно 1
Ниже приведен еще один пример, в котором мы импортируем имена и отметки учащихся из списка и печатаем их с помощью шаблона.
Пример 2:
# A Python program to demonstrate the
# working of the string template
from string import Template
# List Student stores the name and marks of three students
Student = [('Ram',90), ('Ankit',78), ('Bob',92)]
# We are creating a basic structure to print the name and
# marks of the students.
t = Template('Hi $name, you have got $marks marks')
for i in Student:
print (t.substitute(name = i[0], marks = i[1]))
Выход:
Hi Ram, you have got 90 marks Hi Ankit, you have got 78 marks Hi Bob, you have got 92 marks
В приведенном ниже примере показана реализация метода safe_substitute.
Пример 3:
from string import Template
template = Template('$name is the $job of $company')
string = template.safe_substitute(name='Raju Kumar',
job='TCE')
print(string)
Выход:
Raju Kumar is the TCE of $company
Обратите внимание, что мы не предоставили заполнителю “$company” никаких данных, но он не выдаст ошибку, а вернет заполнитель в виде строки, как описано выше.
Печать строки шаблона
Атрибут “шаблон” объекта шаблона можно использовать для возврата строки шаблона, как показано ниже:
Пример:
t = Template('I am $name from $city')
print('Template String =', t.template)
Выход:
Template String = I am $name from $city
Убегающий знак $
$$ может быть использован для побега $ и рассматривайте как часть строки.
Пример:
template = Template('$$ is the symbol for $name')
string = template.substitute(name='Dollar')
print(string)
Выход:
$ - это символ доллара
${Идентификатор}
${Идентификатор} работает аналогично $Идентификатору. Это удобно, когда допустимые символы идентификатора следуют за заполнителем, но не являются его частью.
Пример:
template = Template( 'That $noun looks ${noun}y')
string = template.substitute(noun='Fish')
print(string)
Выход:
That Fish looks Fishy
Еще одно приложение для шаблона-это отделение логики программы от деталей нескольких форматов вывода. Это позволяет заменять пользовательские шаблоны XML-файлами, отчетами в виде обычного текста и веб-отчетами в формате HTML.
Обратите внимание, что существуют и другие способы печати форматированных выходных данных, таких как %d для целого числа, %f для плавающей и т. д.