문자열템플릿은 문자열생성을 목적으로 한다.
기존의 문자열을 템플릿으로 하여, 특정문자열을 변수로서 인식하여 지정한 문자열로 치환하여 출력한다.
예제를 살펴보도록 하자. 아래 코드 4개는 모두 동일한 결과를 가진다.
sample #1)
from string import Template
s = Template('$who likes $what')
t = s.substitute(who='kim', what='apple')
print(t)
sample #2)
from string import Template
template_str = '$who likes $what'
s = Template(template_str)
t = s.substitute(who='kim', what='apple')
print(t)
sample #3)
from string import Template
template_str = '$who likes $what'
who = 'kim'
what = 'apple'
s = Template(template_str)
t = s.substitute(who=who, what=what)
print(t)
sample #4)
from string import Template
template_str = '$who likes $what'
value = { 'who' : 'kim', 'what' : 'apple' }
s = Template(template_str)
t = s.substitute(value)
print(t)
위에서 살펴본바와 같이 substitute()인자로 dic 자료형 형태로 전달 가능하다.
하지만, 전달된 인자의 짝(?)이 맞지 않다면 아래와 같이 Error가 발생한다.
from string import Template
template_str = '$who likes $what'
value = { 'who' : 'kim' } # what에 해당하는 key와 value 삭제
s = Template(template_str)
t = s.substitute(value)
print(t)
Error 문구를 좀 더 깔끔(?)하게 출력하기 위해서 아래와 같이 try/except 구문을 사용해 보자.
from string import Template
template_str = '$who likes $what'
value = { 'who' : 'kim' }
s = Template(template_str)
try:
t = s.substitute(value)
print(t)
except KeyError as e:
print("exception is raised : " + str(e))
다음과 같은 Error 상황이 발생하면 안되지만, 이러한 Error 발생을 막기 위해 safe_substitute() 를 사용하기도 한다.
safe_substitute()는 입력받은 변수에 대해서만 치환을 하고, 나머지는 값 그대로를 문자열로 출력한다.
from string import Template
template_str = '$who likes $what'
value = { 'who' : 'kim' } # what에 해당하는 key와 value 삭제
s = Template(template_str)
t = s.safe_substitute(value) # safe_substitute로 변경
print(t)
[파이썬(Python)] #27 None Value (0) | 2021.09.28 |
---|---|
[파이썬(Python)] #28 매직 메소드(magic methods) (0) | 2021.09.27 |
[파이썬(Python)] #25 상속 (0) | 2021.09.17 |
[파이썬(Python] #24 클래스(class) / 객체(instance) / __new__ / __init__ (0) | 2021.09.17 |
[파이썬(Python)] #14. 자료형 (딕셔너리(dict)) (0) | 2021.08.22 |