You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中如何将变量值嵌入读取的文件内容中?

解决变量嵌入文本/HTML模板的问题

嘿,我完全理解你想要把代码逻辑和HTML/文本模板分开的需求——这样确实能让后续的维护工作轻松太多了!针对你的场景,这里有几个实用的解决方案:

方法1:使用Python内置的字符串格式化(适合简单场景)

首先修改你的模板文件(reading.txt),把需要替换的变量位置改成占位符格式:

Current value of variable x is: {x} and so on.

然后在代码里读取模板后,用str.format()方法填充变量值:

x = 5
# 使用with语句自动管理文件,比手动open/close更安全
with open("C:\\Test\\reading.txt", 'r') as f:
    template_content = f.read()

# 填充变量到模板中
final_output = template_content.format(x=x)
print(final_output)

运行后就能得到你期望的输出:Current value of variable x is: 5 and so on.

这种方法不需要额外安装依赖,适合变量少、逻辑简单的模板。

方法2:使用Jinja2模板引擎(适合复杂HTML场景)

如果你的邮件HTML包含循环、条件判断或者大量变量,Jinja2会是更专业的选择——它是Python生态中最常用的模板引擎,专门用来处理这类动态内容生成的场景。

步骤1:安装Jinja2

pip install jinja2

步骤2:修改模板文件

把模板里的变量占位符改成{{ 变量名 }}的格式,比如reading.txt内容:

Current value of variable x is: {{ x }} and so on.

步骤3:编写代码渲染模板

from jinja2 import Environment, FileSystemLoader

# 指定模板文件所在的目录
env = Environment(loader=FileSystemLoader("C:\\Test"))
# 加载你的模板文件
template = env.get_template("reading.txt")

# 传入变量,渲染生成最终内容
final_output = template.render(x=5)
print(final_output)

Jinja2支持的功能远不止简单变量替换,比如你可以在HTML模板里写循环:

<ul>
{% for item in item_list %}
    <li>{{ item.name }}</li>
{% endfor %}
</ul>

然后在代码里传入item_list变量即可,非常适合复杂邮件内容的维护。

两种方法都能实现你“代码与模板分离”的需求,简单场景用内置格式化,复杂场景选Jinja2就好~

内容的提问来源于stack exchange,提问作者Bostjan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 06:37:47