快捷搜索:  汽车  科技

怎么把yaml文件部署到测试环境(到底是不是python脚本中一种神奇的存在)

怎么把yaml文件部署到测试环境(到底是不是python脚本中一种神奇的存在)import yaml f=open('config.yaml' 'r') yaml.warnings({'YAMLLoadWarning': False}) data=yaml.load(f) print dataimport yaml f=open('config.yaml' 'r') data=yaml.safe_load(f) print datapip install PyYAMLyaml文件的读取在5.4版本之后略有不同,具体实现有以下三种方式。import yaml f=open('config.yaml' 'r') data=yaml.load(f Loader=yaml.FullLoader) print data

最近在写precheck的python脚本的时候,接触到了一个很灵活的文件格式,它不同于robotframework框架中的txt文本文件,同样是实现了配置文件的功能,但是,在python中,yaml让python脚本更加灵活。

在robotframework框架中,传统的配置文件的格式是txt文件,是以如下的形式:

${var} 172.28.0.1 @{list1} node1 node2 node3

而在yaml文件中,形式就很不一样了。如下所示:

怎么把yaml文件部署到测试环境(到底是不是python脚本中一种神奇的存在)(1)

python2中yaml安装:

pip install PyYAML

怎么把yaml文件部署到测试环境(到底是不是python脚本中一种神奇的存在)(2)

基本语法
  1. 1、严格区分大小写
  2. 2、使用空格缩进表示层级关系,不能使用tab,缩进的数量不限,但是同一缩进左侧对齐
  3. 3、#表示注释
  4. 4、yaml支持列表和字典,也支持纯量,即就是单个的值,例如布尔值,整数,浮点数,时间,日期等。
  5. 5、- value,表示内容为列表格式数据,中间有一个空格
  6. 6、key: value,表示为字典格式数据,冒号后面一定要有一个空格
yaml文件读取,针对5.4.1版本

yaml文件的读取在5.4版本之后略有不同,具体实现有以下三种方式。

方式1

import yaml f=open('config.yaml' 'r') data=yaml.load(f Loader=yaml.FullLoader) print data

方式2

import yaml f=open('config.yaml' 'r') data=yaml.safe_load(f) print data

方式3

import yaml f=open('config.yaml' 'r') yaml.warnings({'YAMLLoadWarning': False}) data=yaml.load(f) print data

接着就可以根据列表或者字典的取值方法,自由读取想要的数据了。

怎么把yaml文件部署到测试环境(到底是不是python脚本中一种神奇的存在)(3)

当然,yaml文件还有一个很nice的使用,就是函数式的复用,不过在yaml中叫做锚点。举个例子就

一目了然了。

怎么把yaml文件部署到测试环境(到底是不是python脚本中一种神奇的存在)(4)

&建立锚点,<<>

{ "config": [ { "ip": "172.28.0.2" "hostname": "node2" "role": [ "nova" "cinder" ] } { "ip": "172.28.0.2" "hostname": "node2" "role": [ "nova" "cinder" ] } ] }

那么为什么说yaml是一种神奇的存在呢?那是因为yaml有以下的优势。
  • 1、可读性好。
  • 2、和脚本语言的交互性好。
  • 3、使用实现语言的数据类型。
  • 4、模型化的信息结构。
  • 5、易于实现,容易编写。

yaml,在python中通常被用作配置文件,比如docker inspect 的信息就可以很好的存放在yaml中。因为在编程语言中,json结构的数据易于阅读和获取,无论是在作为参数传入还是作为结果的校验,Json格式都给我们的脚本带来了便捷。如果有接触虚拟机的伙伴们可能就知道,对于主机以及虚拟机信息的展示,如果使用yaml格式的化,那就真的是太方便了。

所以,yaml,值得一用。

猜您喜欢: