String Template Class in Python
In this article, we will learn about the template class of string module that is used to format the string in Python with the help of different examples.
The string module in python has a Template class that can be used to format strings in python. Python string templates are implemented by passing the constructor with a template string as an argument. In simpler terms python string template class allows us to create variable stings that can be updated with a value as per need.
Now that we are familiar with what it does let’s dive into how it works.
String Template Class Methods:
There are 3 key methods that can be used to create or format string from a string template. Let’s look into each one of them.
- string.Template(template): This is a constructor within python’s string template class that accepts the string template as its argument.
- substitute(mapping,**keywords): This method as the name suggest is used to map string values to their corresponding placeholders(template strings) in the string. Here the mapping argument is used to map the string template to the string values. If a template string or its corresponding string value is missing, it raises keyError.
- safe_substitue(mapping,**keywords): This function performs exactly like the above-discussed substitute() method, with the key difference being, it doesn’t raise a keyError even if a placeholder from either the template or string value is missing, instead it sets the original value as default for missing entities. It also
Note: The $(Dollar) sign is used to define the placeholder in Template string formatting.
Now let’s take a look at a couple of examples to better understand the concept.
Example: Using substitute method of Python Template string class.
# import Template from string modulefrom string import Template
# Create a template string object# that acts as a placeholdertemplate_object = Template('$greetings! You are at $platform.')
# Substitute values of greetings and# platform in above template object# using substitute() methodformatted_string=template_object.substitute( {'platform' : "Naukri E-learning", 'greetings':"Welcome"} )print(formatted_string)
Output:
Welcome! You are at Naukri E-learning.
Example 2: Using the safe_substitute method of the Python Template string class.
# import Template from string modulefrom string import Template
# Create a template string object# that acts as a placeholdertemplate_object = Template('$greetings! You are at $platform.')
# Substitute values of greetings and# platform in above template object# using safe_substitute() methodformatted_string=template_object.safe_substitute( {'platform' : "Naukri E-learning", 'greetings':"Welcome"} )print(formatted_string)
Output:
Welcome! You are at Naukri E-learning.
Example 3: Difference between substitute and safe _substitute methods.
# import Template from string modulefrom string import Template
# Create a template string object# that acts as a placeholdertemplate_object = Template('$greetings! You are at $platform.')
# Substitute values of# platform in above template object# using safe_substitute() methodformatted_string_1=template_object.safe_substitute( {'platform' : "Naukri E-learning"} )print(formatted_string_1)
# Substitute values of# platform in above template object# using substitute() methodformatted_string_2=template_object.substitute( {'platform' : "Naukri E-learning"} )print(formatted_string_2)
Output:
$greetings! You are at Naukri E-learning. Traceback (most recent call last): File "0d655531-4f1f-4220-8f81-9ee563826234.py", line 21, in <module> {'platform' : "Naukri E-learning"} File "/usr/local/lib/python3.7/string.py", line 132, in substitute return self.pattern.sub(convert, self.template) File "/usr/local/lib/python3.7/string.py", line 125, in convert return str(mapping[named]) KeyError: 'greetings'
As you can observe in the above output, we have not provided the value of placeholder $greetings. In the case of safe_substitute() method, the placeholder is set to the template string itself as the default value and prints out the output, whereas in the case of the substitute () method, it raises a keyError.
Best-suited Python courses for you
Learn Python with these high-rated online courses
Escaping the $ sign
There might be a situation wg=here you have the need to use the dollar sign without making it a placeholder and treat it as a string. In these types of situations, we make use of the $$ symbol. Take a look at the below example for reference.
Example 4: Escaping the $ symbol with $$.
# import Template from string modulefrom string import Template
# Create a template string object# that acts as a placeholdertemplate_object = Template('The $ is the currency of $country.')
# Substitute values of# platform in above template object# using safe_substitute() methodformatted_string_1=template_object.safe_substitute( {'country' : "USA"} )print(formatted_string_1)
Output:
The $ is the currency of USA.
Final Thoughts
Though alternatives of the string template class like the F-string and .format() method exists, which are more powerful, the string template class still proves to be simpler and more convenient. On top of that, the string template class can also be used to substitute custom HTML web reports, XML files, and plain text files.
Top Trending Article
Top Online Python Compiler | How to Check if a Python String is Palindrome | Feature Selection Technique | Conditional Statement in Python | How to Find Armstrong Number in Python | Data Types in Python | How to Find Second Occurrence of Sub-String in Python String | For Loop in Python |Prime Number | Inheritance in Python | Validating Password using Python Regex | Python List |Market Basket Analysis in Python | Python Dictionary | Python While Loop | Python Split Function | Rock Paper Scissor Game in Python | Python String | How to Generate Random Number in Python | Python Program to Check Leap Year | Slicing in Python
Interview Questions
Data Science Interview Questions | Machine Learning Interview Questions | Statistics Interview Question | Coding Interview Questions | SQL Interview Questions | SQL Query Interview Questions | Data Engineering Interview Questions | Data Structure Interview Questions | Database Interview Questions | Data Modeling Interview Questions | Deep Learning Interview Questions |
This is a collection of insightful articles from domain experts in the fields of Cloud Computing, DevOps, AWS, Data Science, Machine Learning, AI, and Natural Language Processing. The range of topics caters to upski... Read Full Bio