示例
[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))
本文介绍了Python中使用正则表达式和`fileinput`模块实现模板文本替换的技巧。通过匹配与替换,代码能够动态地将特定字段替换为对应的值,适用于自动化生成配置文件或者文本模板的场景。
1645

被折叠的 条评论
为什么被折叠?



