示例
[email = ‘lqz72@qq.com’]
[name = ‘lqz72’]
The email of [name] is [email]
template.txt
执行代码后name 和 email被代入,打印出了完整的字符串
实现代码:
import fileinput, re
field_pat = re.compile(r'\[(.+?)\]')
#存放变量的值
scope = {}
def replacement(match):
code = match.group(1)
try:
return str(eval(code, scope))
except SyntaxError:
#出现异常则意味着括号里不是表达式 应使用exec执行该语句
exec(code, scope)
return ''
lines = []
for line in fileinput.input():
lines.append(line)
text = ''.join(lines)
print(field_pat.sub(replacement, text))