YAML文件的读取

一、yaml文件在Python中的使用场景:

作为配置文件使用:软件开发过程中,配置文件是经常打交道的东西。对于一些复杂的程序来说,需要使用配置文件来配置一些参数。比如说,测试环境、预生产环境和生产环境的地址,mysql的地址,帐号,密码等信息。因为部署的环境不同,所对的应内容就不同,在这种情况下就需要根据不同的部署环境配置不同的参数。

二、yaml是什么:

  • YAML (YAML Another Markup Language)是一种标记语言;

  • 文件扩展名一般是.yml或者.yaml;

  • 一种专门用来写配置文件的语言。可用于如: Java,C/C++, Ruby, Python, Perl, C#, PHP等。

三、yaml的优点:

  1. YAML易于人们阅读。

  2. YAML数据在编程语言之间是可移植的。

  3. YAML匹配敏捷语言的本机数据结构。

  4. YAML具有一致的模型来支持通用工具。

  5. YAML支持单程处理。

  6. YAML具有表现力和可扩展性。

  7. YAML易于实现和使用。

四、yaml文件的语法:

  • 大小写敏感;

  •  使用缩进表示层级,缩进不允许tab,只允许空格;

  • 不允许使用制表符\t,只允许使用空格;

  • 缩进的空格数量不作要求,可以1个,也可以多个;

  •  相同层级的元素应保持相同的缩进;

  • 注释标识为#,标识注释当前行;

  • yaml是第三方库,需要安装后使用  pip install pyyam;

安装成功后:

五、常用的数据格式:

1、yaml中的字符串: 可以用单引号,双引号,也可以不用引号;
  1. 单引号/不加引号会转义特殊字符,特殊字符最终只是一个普通的字符串数据;

例:

'Hello\nworld'

Hello\nworld

程序代码如下:

import yaml

 with open('yaml文件路径.yaml') as file1:
     text = yaml.load(file1,Loader=yaml.FullLoader)
     print(text)

读取结果:

  1. 双引号不会转义字符串里面的特殊字符;特殊字符会作为本身想表示的意思

例:

"Hello\nworld"

同样使用上述代码,输出结果为:

2、yaml中的列表

1)可以用减号加空格加元素表示列表

2)可以用缩进表示子列表

例:

- 100

- 200

-

  - 30

同样使用上述代码,输出结果为:

3、yaml中的字典

1)字典以key:value的形式表示

2)可以用缩进表示子字典

例:

A:

 name1:Tiffany

B:book

读取结果:

4、yaml中的变量

1)yaml允许定义和使用变量

2)定义变量 &变量名 变量值

  1. 使用变量 *变量名

HOST: &HOST 121.41.14.39

url: *HOST

同样使用以上代码,读取结果:

5、yaml中存放多个元素
  • yaml允许存放多个不同类型的元素

  • 不同元素之间用---隔开

例:

-10

-20

---

name:张三

age:21

代码如下:

import yaml
with open('yaml文件路径.yaml',encoding='utf-8') as file2:
    text = yaml.load_all(file2,Loader=yaml.FullLoader)
    for one in text:
        print(one)

读取结果:

六、yaml文件的写入:

import yaml
text={'host':'127.0.0.1','user':'root','pwd':'123456'}
with open('./1.yaml','a+',encoding='utf-8') as file2:
    yaml.dump(text,file2,allow_unicode=True)
file2.close()

text:写入的数据;

allow_unicode=True 如果添加的数据包含中文,避免写入的数据出现乱码;

七、常见问题:

1、yaml文件中包含单一变量,可使用yaml.load()读取yaml文件;

2、如果yaml文件中包含多个不同类型的元素,可使用yaml.load_all()来解析全部文档;

3、Loader=yaml.FullLoader不提示安全警告;

4、yaml文件中的字典格式:以键值对形式,冒号后面加空格;

5、yaml文件中的列表格式,数组前面加’-‘,

  • 13
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值