zoukankan      html  css  js  c++  java
  • 用配置文件里面的参数值替换yaml模板中的变量值【python】

    #!/usr/bin/python
    #coding:utf-8
    """
    """
    import sys,os
    from contextlib import nested
    
    profileList = {};
    
    
    def PropValue(envfile):
        with open(envfile) as profile:
            new_profile = profile.readlines();
            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 nested(open(yamlfile), open(newyamlfile, 'w')) as (yml_file, yml_output) :
                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, e:
            print ("Error: " + format(str(e)));
            raise;
        
    
    if  __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
  • 相关阅读:
    HDU 4947 GCD Array 容斥原理+树状数组
    Codeforces Round #363 (Div. 2)
    白书 博弈学习
    2016 Multi-University Training Contest 1
    KM算法 PK 最小费用最大流
    final 发布 领跑衫获奖感想
    2016"百度之星"
    爆打团队 2016.05.05 站立会议
    爆打团队 四则运算 beta视频
    爆打团队 2016.04.27 站立会议
  • 原文地址:https://www.cnblogs.com/husbandmen/p/8783232.html
Copyright © 2011-2022 走看看