我想使用html模板发送电子邮件。该模板位于html文件中,并且其中包含一些变量。如果我读取文件并将其文本存储在变量中:
with open('test.html', 'r') as f:
html = f.read()
是否可以在'html'变量中使用f字符串?
答案 0 :(得分:1)
f字符串(也称为formatted string literals)是语言语法的一部分,是用代码描述字符串的一种方式。您要在这里实现的目标有所不同。
您描述的内容通常称为模板。 Python标准库提供了Template strings,但它们的工作原理与f字符串略有不同。
此外,注释中还提到了许多第三方模板库,您可以在互联网上search来选择最适合您的应用程序的其他模板库(模块/软件包)。
答案 1 :(得分:-5)
如果确实需要,可以使用exec()
,但是更好的选择是使用一些模板引擎:
test.html
的内容:
<html>
<body>
This is multiline string string,
var1 will print like hex: {var1:x},
Another variable {var2}
</body>
脚本:
with open('test.html', 'r') as f:
var1 = 8674
var2 = 'World'
exec("v = f'''" + f.read() + "'''")
print(v)
打印:
<html>
<body>
This is multiline string string,
var1 will print like hex: 21e2,
Another variable World
</body>