python封装读取yaml文件的脚本

#一:封装读取yaml文件的脚本YAMLUtils.py

# 1.在打开文件之前应先判断该文件是否存在,我们将判断写在类的初始化方法中
class YAMLUtils:
    def __init__(self, filepath):
        # 判断添加
        if os.path.exists(filepath):
            self.yamlfile = filepath
        else:
            raise FileNotFoundError("文件不存在")
        # 在初始化的最后我们加上一个默认参数,用于判断文件是否已经被读取
        self._all_data = None

    # 2.判断文件是否存在后,我们尝试读取文件(为了防止重复读取,我们需做一个判断)
    def safe_load_all(self):
        # 判断文件是否已经读取
        if not self._all_data:  # 因为if None 就代表条件为false,所以在前面添加一个not,便是如果_all_data没有值的话,就执行判断语句下的代码
            # 第一步:我们读取文件
            with open(self.yamlfile, 'rb') as f:
                # 第二步:我们获取所读取文件中的值
                self._all_data = list(yaml.safe_load_all(f))  # 注:该处应该将yaml读取后的内容用list()转化成列表的形式展示
        # 第三步:我们将获取到的文件内容返回出去
        return self._all_data
		
#二:封装读取配置文件内容的脚本ConfigUtils.py

#1.使用safe_load_all读取配置文件后,我们需要获取到文件中各字典内容对应的具体key-values,所以我们需要创建一个YAMLUtils的对象,首先我们先获取到yaml文件的地址
# 当前文件的绝对路径
current = os.path.abspath(__file__)
# 当前文件的父级目录
BASE_DIR = os.path.dirname(current)  #以上两行代码也可以使用 BASE_DIR = os.getcwd()代替

# 定义config目录路径 -- os.sep是分隔符
_conf_file = BASE_DIR + os.sep + "config.yaml"

#定义一个方法返回yaml文件的路径
def get_config_file():
    return _conf_file
	
class ConfigUtils:
	#我们将创建YAMLUtils对象的操作放在初始化方法中
	def __init__(self):
		self.yamlconfig = YAMLUtils(get_config_file()).safe_load_all()
		
	#定义获取具体key-values的方法,例如测试环境的地址
	def get_conf_qaurl(self):
		return self.yamlconfig[0].get('QAURL')
#我们创建该类的对象,当其他模块引用的时候直接引用该对象
config = ConfigUtils()

yaml文件的示例:

#测试环境链接
---
QAURL: 'http://www.baidu.com'

#地址
---
Stageurl: 'https://www.xinlang.com'

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值