学习
实践
活动
专区
工具
TVP
写文章

python中配置管理文件

YAML是一个比XML,JSON数据格式的更加方便,简洁的,易于阅读的序列化数据格式。在很多的脚本语言中都有应用,下面以其在Python语言中为例,总结下个人的心得。

在python中,我们一般用ini 文件来管理小规模的配置(用configparser来解析),用xml,json,或者csv,excel来管理大规模的配置。如果用yaml来管理配置,更加方便简单。

首先要装 PyYAML

安装起来很简单:

我们可以参考阮一峰老师的教程:

YAML语言教程

总的来说,语法没什么难度,也是人们司空见惯的了。

大小写敏感

使用缩进表示层级关系

缩进时不允许使用Tab键,只允许使用空格。

缩进的空格数目不重要,只要相同层级的

使用空白字元为文件缩排来表示结构;不过不能使用跳格字元(TAB)。

注解由井字号( # )开始,可以出现在一行中的任何位置,而且范围只有一行(也就是一般所谓的单行注解)

每个清单成员以单行表示,并用短杠+空白( - )起始。或使用方括号( [ ] ),并用逗号+空白( , )分开成员。

每个杂凑表的成员用冒号+空白( : )分开键值和内容。或使用大括号( { } ),并用逗号+空白( , )分开。

杂凑表的键值可以用问号 ( ? )起始,用来明确的表示多个词汇组成的键值。

字串平常并不使用引号,但必要的时候可以用双引号 ( “ )或单引号 ( ‘ )框住。

使用双引号表示字串时,可用倒斜线( \ )开始的跳脱字元(这跟C语言类似)表示特殊字元。

区块的字串用缩排和修饰词(非必要)来和其他资料分隔,有新行保留(preserve)(使用符号 )或新行折叠(flod)(使用符号 > )两种方式。

在单一档案中,可用连续三个连字号(—-)区分多个档案。

另外,还有选择性的连续三个点号( … )用来表示档案结尾。

数值型: 直接书写即可。不区分整型还是浮点型。

字符串: 字符串可以加引号,也可以不加。

时间: ISO8601 格式。如2017-12-14t21:59:43.10-05:00

日期: 采用复合 iso8601 格式的年、月、日表示。如1970-01-01

关于强制类型转换: 可以通过两个英文感叹号+新的数据类型的方式来进行强制的类型转换。

如:

将变为:

yaml.load与yaml.dump方法

该模块提供了一些方法,不过常用的方法只有两个yaml.load和yaml.dump ,以下是一个版本相关的yaml 格式文件:

yaml.load方法:

执行结果:

yaml与xml

yaml与json

准确的说json 应该算是yaml 标准下的一个字集,可以很方便的转换。

a、转换YAML到JSON

b、转换JSON到YAML

于是我们可以把操作yaml封装成一个类:

每次只需要写好yaml文件以及路径就可以读写相应的文件,获取相应的值了。

比如我们用appium做mobile的自动化,

就可以简单写成:

然后实现起来也很简单:

只要稍微管理下配置文件,就减少了很多维护成本了。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180218G0NWZT00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

关注

腾讯云开发者公众号
10元无门槛代金券
洞察腾讯核心技术
剖析业界实践案例
腾讯云开发者公众号二维码

扫码关注腾讯云开发者

领取腾讯云代金券