如何用Python实现YAML模板自动填充批量生成配置文件
实现方案(仅需基础Python操作,无复杂依赖)
第一步:准备YAML模板文件
直接在你现有YAML文件的对应位置加上要求的占位符即可,示例模板文件命名为template.yaml,内容参考(替换为你实际的YAML结构即可):
apiVersion: v1 kind: CustomConfig metadata: name: {name_interaction}-service spec: threshold: {value1} accessMode: {value2} fixedParam: default # 不需要改动的固定参数直接保留原值即可
占位符严格按照
{name_interaction}、{value1}、{value2}的格式书写即可,无需额外转义。
第二步:配置数据源
直接把你需要批量生成的参数按组写在脚本中即可,不需要额外搭建数据库或存储服务,格式参考:
# 每组参数对应 [name_interaction的值, value1的值, value2的值],需要多少组加多少行 data_source = [ ["donald", "1024", "enable"], ["mickey", "2048", "disable"], ["daisy", "4096", "enable"] ]
第三步:编写生成脚本
代码总共不到15行,复制后修改对应路径就能直接用:
# 读取模板文件内容 with open("template.yaml", "r", encoding="utf-8") as f: template = f.read() # 配置你的参数数据源 data_source = [ ["donald", "1024", "enable"], ["mickey", "2048", "disable"], ["daisy", "4096", "enable"] ] # 循环生成每个独立的YAML配置文件 for item in data_source: name, val1, val2 = item # 填充占位符 filled_content = template.format(name_interaction=name, value1=val1, value2=val2) # 生成以name命名的独立配置文件 with open(f"{name}_config.yaml", "w", encoding="utf-8") as f: f.write(filled_content)
第四步:运行脚本
直接执行上述Python文件即可,运行后会在同目录下生成donald_config.yaml、mickey_config.yaml、daisy_config.yaml三个对应参数的独立配置文件。
补充说明
- 本方案用原生字符串替换实现,不需要安装PyYAML等第三方库,Python3环境即可直接运行
- 如果你的value是数字、布尔值等YAML特殊类型,直接按实际值填入数据源即可,填充后会自动保留正确的YAML格式
- 后续需要新增占位符的话,只要在模板里加
{xxx}格式的占位符,同时在format参数里加对应xxx=赋值的配置即可 - 脚本默认用UTF-8编码读写文件,可避免中文乱码问题
内容的提问来源于stack exchange,提问作者Mik Kim
相关产品推荐
相关产品推荐

