博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
用配置文件里面的参数值替换yaml模板中的变量值【python】
阅读量:5299 次
发布时间:2019-06-14

本文共 1993 字,大约阅读时间需要 6 分钟。

用配置文件里面的参数值替换yaml模板中的变量值【python】

#!/usr/bin/env python# -*- coding: utf-8 -*-# @Time    : 2019/9/20 15:44# @Site    : # @File    : VarsubYaml.py# @Software: PyCharm""""""import sys, osfrom contextlib import ExitStackprofileList = {}def PropValue(envfile):    with open(envfile) as profile:        new_profile = profile.readlines()        print(new_profile)        for line in new_profile:            line_key = line.strip().split("=", 1)[0];            profileList[line_key] = line.strip().split("=", 1)[1]def EnvReplaceYaml(yamlfile, newyamlfile):    try:        with ExitStack()  as stack:            yml_file = stack.enter_context(open(yamlfile,'r+'))            yml_output = stack.enter_context(open(newyamlfile,'w'))            yml_file_lines = yml_file.readlines()            for line in yml_file_lines:                new_line = line                if (new_line.find('$$PLACEHOLDER$$') > 0):                    env_list = new_line.split(':')                    env_name = env_list[0].strip()                    replacement = ""                    if env_name in profileList.keys():                        replacement = profileList[env_name];                    new_line = new_line.replace('$$PLACEHOLDER$$', replacement)                yml_output.write(new_line)    except IOError as e:        print("Error: " + format(str(e)))        raiseif __name__ == "__main__":    PropValue('env')    EnvReplaceYaml('temp.yaml', 'newtemap.yaml')

temp.yaml

---applications:- name: $$NAME$$-$$DATETIME$$-$$VERSION$$  memory: 2048m  instances: 1  disk_quota: 2048m################## ==================================================  env:     APP_ID: "$$PLACEHOLDER$$"     TABLE_KEY: "$$PLACEHOLDER$$"     SECURITY: "$$PLACEHOLDER$$"     KEY: "$$PLACEHOLDER$$"

env

APP_ID=11111111111     TABLE_KEY=22222222222     SECURITY=3333333333333     KEY=6777777777777

原文中的nested已经在python3中弃用了,改为ExitStack

参考:https://www.cnblogs.com/husbandmen/p/8783232.html

转载于:https://www.cnblogs.com/mrwuzs/p/11558381.html

你可能感兴趣的文章
[机器学习]回归--Decision Tree Regression
查看>>
Direct2D教程(外篇)环境配置
查看>>
2016-10-14
查看>>
Java实现Queue类
查看>>
1.7Oob 方法体中的循环也能也能返回值给方法
查看>>
java 解析xml(dom4j.jar)
查看>>
input的相关兼容性问题
查看>>
总结下对称加密算法
查看>>
Login 页面
查看>>
第二次作业
查看>>
实用技巧:利用SQL Server的扩展属性自动生成数据字典
查看>>
清空std::stringstream
查看>>
【模考】2018.03.10 图
查看>>
转发《离职引发的诸多感触 》
查看>>
C语言中printf和cprintf有什么区别啊
查看>>
Log4j log for java(java的日志) 的使用
查看>>
java.split();用法
查看>>
Python全栈 Web(概述、HTML基础语法)
查看>>
Mongodb----基础
查看>>
【转载】Xcode6中添加pch文件
查看>>