yaml 如何禁用告警?有三种方式。
1. 使用PYTHONWARNINGS环境变量
PYTHONWARNINGS=ignore::yaml.yamlloadwarning
2. yaml.load(input, Loader=yaml.FullLoader),Loader有以下四种:
1、BaseLoader:仅加载最基本的YAML;
2、SafeLoader:安全的加载YAML语言的子集;
3、FullLoader:加载完整的YAML语言,避免执行任意代码,是目前默认的加载方式;
4、UnsafeLoader(也要求Loader向后兼容):不受信任的数据输入,很容易利用的原始Loader代码;
3. 全局禁用警告
yaml.warnings({'YAML.LOADWARNING':False})
在python中读写yaml配置文件:
import os
import yaml
#当前文件路径
filepath = os.path.dirname(__file__)
print("当前文件路径: %s" % filepath)
#当前文件的realpath
filenamepath = os.path.split(os.path.realpath(__file__))[0]
print("当前文件realpath: %s" % filenamepath)
#获取配置文件的路径
yamlpath = os.path.join(filenamepath, 'testdataconfig.yaml')
print("配置文件的路径: %s" % yamlpath)
# 代码实现写入yaml配置文件信息
############ 以下:写入yaml文件###############################
# a 代表‘追加写入’ ,w 代表‘覆盖写入’
fw = open(yamlpath, 'a', encoding='utf-8')
data = {
"cookie1": {
'domain': '.yiyiyi',
'expiry': 123456.1573,
'httponly': False,
'name': '__ui__',
'path': '/',
'secure': False,
'value': 'HSXFGSHDASJKFIMSA'
}
}
yaml.dump(data, fw)
f = open(yamlpath, 'r', encoding='utf-8')
cont = f.read()
x = yaml.load(cont, Loader=yaml.FullLoader)
print(x)
print(x.get("cookie1"))
############ 以上:写入yaml文件###############################
# 代码实现获取yaml配置文件信息
############ 以下:代码实现获取yaml配置文件信息###############################
f = open(yamlpath, 'r', encoding='utf-8')
cont = f.read()
x = yaml.load(cont, Loader=yaml.FullLoader)
print(x)
print(x['DEVICEINFO']['deviceip'])
print(x['DEVICEINFO']['username'])
print(x['DEVICEINFO']['password'])
############ 以上:代码实现获取yaml配置文件信息###############################
运行上述读取yaml文件内容代码后,运行结果如下:
"D:\Program Files\Python\python374\python.exe" F:\AutoCode\pythonSDK\yaml_operator.py
当前文件路径: F:\AutoCode\pythonSDK
当前文件realpath: F:\AutoCode\pythonSDK
配置文件的路径: F:\AutoCode\pythonSDK\testdataconfig.yaml
{'DEVICEINFO': {'deviceip': '192.168.1.111', 'username': 'admin', 'password': 'retry'}}
192.168.1.111
admin
retry
Process finished with exit code 0
运行上述写入yaml文件代码后,运行结果如下:
"D:\Program Files\Python\python374\python.exe" F:\AutoCode\pythonSDK\yaml_operator.py
当前文件路径: F:\AutoCode\pythonSDK
当前文件realpath: F:\AutoCode\pythonSDK
配置文件的路径: F:\AutoCode\pythonSDK\testdataconfig.yaml
{'DEVICEINFO': {'deviceip': '192.168.1.111', 'username': 'admin', 'password': 'retry'}, 'cookie1': {'domain': '.yiyiyi', 'expiry': 123456.1573, 'httponly': False, 'name': '__ui__', 'path': '/', 'secure': False, 'value': 'HSXFGSHDASJKFIMSA'}}
{'domain': '.yiyiyi', 'expiry': 123456.1573, 'httponly': False, 'name': '__ui__', 'path': '/', 'secure': False, 'value': 'HSXFGSHDASJKFIMSA'}
Process finished with exit code 0
运行后的yaml文件内容如下: