python3 读取配置文件中的参数值替换yaml文件中的占位符(变量)
2023-09-14 09:01:54 时间
要替换内容的yaml文件:temp.yaml
也就是要将
"$$PLACEHOLDER$$"
进行替换。
---
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
python代码
import sys, os
from contextlib import ExitStack
profileList = {}
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)))
raise
if __name__ == "__main__":
PropValue('env')
EnvReplaceYaml('temp.yaml', 'newtemap.yaml')
运行结果
相关文章
- Python3 使用pickle持久化对象
- Python开发 之 Python3读写Excel文件(较全)[通俗易懂]
- 【新windows电脑部署测试环境系列-01】部署python3 和 pip3
- linux保留旧版本python,安装python3详解程序员
- Linux服务器上安装Python3的两种方式
- Python3 根据m3u8下载视频,批量下载ts文件并且合并详解编程语言
- Python3 itchat实现微信定时发送群消息详解编程语言
- Python3 实现(wxpy)用微信自动定时给朋友定时推广详解编程语言
- Python3 itchat微信获取好友、公众号、群聊的基础信息详解编程语言
- Python3:Django连接Mysql数据库时出错,’Did you install mysqlclient or MySQL-python’详解编程语言
- Python3.x:SQLAlchemy操作数据库详解编程语言
- Python3.x:打包为exe执行文件(window系统)详解编程语言
- python3的一些文件操作的脚手架详解编程语言
- 一则python3的简单爬虫代码