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

Python如何基于带::占位符的固定模板填充内容后写入文件?

完全可以实现,两种常用方案供你根据使用场景选择:

方案1:纯文本模板文件方案

如果最终需要输出的就是示例中带固定结构、::分隔符的文本格式,直接用纯文本模板最省事,不需要额外做格式转换。

  1. 先制作模板文件,把需要替换的位置改成自定义占位符,比如命名为request_template.txt,内容参考:
REQUEST DETAILS
RITM :: {{RITM}}
STASK :: {{STASK}}
EMAIL :: {{EMAIL}}
USER :: {{USER}}

CONTENT DETAILS
TASK STATE :: {{TASK_STATE}}
RAISED ON :: {{RAISED_ON}}
CHANGES :: {{CHANGES}}
  1. Python 直接读取模板做字符串替换即可,无需第三方依赖,示例代码:
# 读取模板文件
with open("request_template.txt", "r", encoding="utf-8") as f:
    template = f.read()

# 定义需要填充的字段值
fill_data = {
    "RITM": "RITM1234",
    "STASK": "TASK1234",
    "EMAIL": "abc@abc.com",
    "USER": "JOHN JOY",
    "TASK_STATE": "OPEN",
    "RAISED_ON": "12-JAN-2021",
    "CHANGES": "REMOVE LOG"
}

# 批量替换占位符
for key, val in fill_data.items():
    template = template.replace(f"{{{{{key}}}}}", val)

# 导出填充完成的最终文件
with open("final_output.txt", "w", encoding="utf-8") as f:
    f.write(template)

如果模板有更复杂的逻辑(比如条件展示、循环生成列表),也可以用Jinja2库处理,支持100行以上的长模板无压力。

方案2:TOML 结构化存储方案

如果不需要直接输出::格式的文本,只是要把字段作为配置存储、做逻辑处理再导出其他格式,用TOML更易维护,不需要处理字符串占位符。

  1. 制作TOML模板文件,比如命名为request_template.toml,内容参考:
[REQUEST_DETAILS]
RITM = ""
STASK = ""
EMAIL = ""
USER = ""

[CONTENT_DETAILS]
TASK_STATE = ""
RAISED_ON = ""
CHANGES = ""
  1. Python 用tomli、tomli-w库直接读写键值即可,示例代码:
import tomli
import tomli_w

# 读取TOML模板
with open("request_template.toml", "rb") as f:
    config = tomli.load(f)

# 直接给对应字段赋值
config["REQUEST_DETAILS"]["RITM"] = "RITM1234"
config["REQUEST_DETAILS"]["STASK"] = "TASK1234"
config["CONTENT_DETAILS"]["TASK_STATE"] = "OPEN"
# 其他字段同理赋值

# 保存为填充完成的TOML文件
with open("filled_config.toml", "wb") as f:
    tomli_w.dump(config, f)

# 如果需要导出::格式的文本,遍历键值拼接字符串即可

选择建议

  • 最终输出为::格式文本的场景选方案1,流程更直接
  • 需要对字段做校验、逻辑判断、对接其他系统的场景选方案2,可维护性更高

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 10:12:01