python中的yaml文件

python中的yaml文件

yaml是"Yet Another Markup Language"(仍是一种标记语言)
yaml的文件后缀支持yaml和yml

yaml的规则:

1.大小写敏感
2.使用缩进表示层级关系
3.缩进时不允许使用tab键,只能使用空格键
4.yaml支持不同的数据类型(整型。字符串,字典,列表,布尔型,None)
5.yaml格式使用key: value的形式,且在key的冒号后面使用一个空格,将key和value区分
6.使用#进行注释
7.一般yaml文件中会自动识别数据类型
8.读取yaml文件输出的数据一般是字典类型
9.使用”进行转义,单引号的特殊字符转到python中会被转义,原样输出,双引号中的不会被转义,最后还是输出了特殊字符
如下图说明:在这里插入图片描述

读取不同格式的yaml文件

一、读取普通的key-value形式的yaml文件

#test.yaml
host: 'http://www.baidu.com'
port: 8080
import yaml
with open('test.yaml', encoding='utf-8') as rstream:
    data = yaml.load(rstream, yaml.SafeLoader)
print(data)
print(data['host'])  # http://www.baidu.com
print(data['port'])  # 8080

运行结果:

{'host': 'http://www.baidu.com', 'port': 8080}

从以上结果来看,输出的就是一个字典
二、读取列表形式的yaml文件

#test.yaml
- fenfei
- beijing
- china
- 18
import yaml
with open('test.yaml', encoding='utf-8') as rstream:
    data = yaml.load(rstream, yaml.SafeLoader)
print(data)

运行结果:

['fenfei', 'beijing', 'china', 18]

总结:从以上运行结果来看,当yaml存储列表数据时,需要用横杠-表示,一个-表示为一个列表元素,输出结果为-代表一个列表元素
三、读取字典嵌套列表的yaml文件

#test.yaml
host: 11.112.112.11
port: 8080
db:
  host: 110.112.113.113
  port: 3306
info:
  -
   username: jiajia
   password: 123456
  -
   username: haha
   password: 123456

python代码:

import yaml
with open('test.yaml', encoding='utf-8') as rstream:
    data = yaml.load(rstream, yaml.SafeLoader)
print(data)

运行结果:

{'host': '11.112.112.11', 'port': 8080, 'db': {'host': '110.112.113.113', 'port': 3306}, 'info': [{'username': 'jiajia', 'password': 123456}, {'username': 'haha', 'password': 123456}]}

总结:存储字典时,以key-value的形式存储,读取出来的话也是以字典的形式输出;存储列表时,以-表示;读取一组数据,使用load(stram,loader),总体来说,yaml文件中列表是嵌套在字典里面的

python中的ini文件

ini是传统的主流配置文件,ini支持的数类型比较少,把所有的值都当做字符串处理
在ini文件中,所有的字符处理不需要加双引号,在ini中,key-value使用=
Ini文件有节,键值、注释组成
[section]
Key=value
使用;进行注释
读取ini文件时需要导入configparser模块中的ConfigParser类

;test.ini
[default]
host=http://www.baidu.com
port=7890
[db]
host=172.14.11.10
port=3306
from configparser import ConfigParser
paraser=ConfigParser()
paraser.read('test.ini',encoding='utf-8')
#获取某个配置:
host=paraser.get('default','host')
print(host)

运行结果:

http://www.baidu.com

总结:

yaml支持的数据类型比较多,推荐使用yaml格式的配置文件

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值