python yaml配置文件,python yml 读写包含中文
yaml简介
1.YAML [JML] :另一种标记语言:另一种标记语言。Yaml是专门用来写配置文件的语言,非常简洁,功能强大。以前,配置文件可以用ini编写。看了yaml,发现这个更直观方便,有点类似json格式。
2.2.yaml的基本语法规则:
区分大小写。
用来表示等级关系。
缩进时不允许使用Tab键,只允许使用空格。
中缩进的空格数并不重要,只要同一级别的元素左侧对齐即可。
#表示注释,解析器将忽略从这个字符到行尾的注释。这和python注释是一样的。
3.3.yaml支持三种数据结构:
对象:一组键值对,也称为映射)/散列)/字典。
:按顺序排列的一组值,也称为序列)/列表。
标量:一个单一的,不可分割的价值。字符串、布尔值、整数、浮点数、空值、时间、日期
1.用pip安装pyyaml模块。
pipinstallpyyaml
安装yaml
1.yaml中的键值对,也就是python中的字典数据类型,比如python中的字典,YAML如何写。
#python3.6
{
用户 : 管理员:
psw:123456,
}在yaml文件中,可以这样写:
#yaml
用户:管理员
Psw:1234562。字典嵌套字典
#python3.6
nb1:{
用户 : 管理员:
psw:123456,
} 3.在}3.yaml文件中可以这样写:
#yaml
nb1:
用户:管理员
Psw:1234564。python中读取yaml文件的案例如下。首先,通过open方法读取文件数据,然后通过load方法将其转换为字典。这个负载类似于json中的负载。
#编码:utf-8
importyaml
进口货
#获取当前脚本所在文件夹的路径
cur path=OS . path . dirname(OS . path . real path
(__file__))
#获取yaml文件路径
yamlPath=os.path.join(curPath,"cfgyaml.yaml")
#open方法打开直接读出来
f=open(yamlPath,'r',encoding='utf-8')
cfg=f.read()
print(type(cfg))#读出来是字符串
print(cfg)
d=yaml.load(cfg)#用load方法转字典
print(d)
print(type(d))运行结果如下:
序列(list)
1.yaml里面写一个数组,前面加一个‘-’符号,如下:
-admin1:123456对应python里面的list-admin2:111111
-admin3:222222
[{'admin1':123456},注意:数字读出来的是int或float类型{'admin2':111111},
{'admin3':222222}]
纯量(str)
1.int和float类型的数字
n1:12.30对应python
{'n1':12.3}2.布尔值用true和false表示
n2:true对应pythonn3:false
{'n2':True,'n3':True}3.None用~表示
n4:~对应python
{'n4':None}4.时间采用 ISO8601 格式。
time1:2001-12-14t21:59:43.10-05:00对应python
{'time1':datetime.datetime(2001,12,15,2,59,43,100000)}5.日期采用复合 iso8601 格式的年、月、日表示。
date1:2017-07-31对应python
{'date1':datetime.date(2017,7,31)}6.使用两个感叹号,强制转换数据类型。
#int转str对应pythonn6:!!str123
{'n6':'123'}
#bool值转str对应pythonn7:!!strtrue
{'n7':'true'}7.在yaml文件写入以下内容:
n1:12.30python读取结果:n2:true
n3:false
n4:~
time1:2018-04-18t21:59:43.10+08:00
date1:2018-04-18
n6:!!str123
n7:!!strtrue
{'n1':12.3,混合使用'n2':True,
'n3':False,
'n4':None,
'time1':datetime.datetime(2018,4,18,13,59,43,100000),
'date1':datetime.date(2018,4,18),
'n6':'123',
'n7':'true'}
1.list嵌套dict,在yaml里面写入如下内容:
-user:admin1用python读取出来的结果:psw:'123456'
-user:admin2
psw:'111111'
-user:admin3
psw:'222222'
[{'user':'admin1','psw':'123456'},2.dict嵌套list,在yaml里面写入如下内容:{'user':'admin2','psw':'111111'},
{'user':'admin3','psw':'222222'}]
nub1:用python读取出来的结果:-admin1
-'123456'
nb2:
-admin2
-'111111'
nb3:
-admin3
-'222222'
{'nub1':['admin1','123456'],众多python培训视频,尽在盛行IT软件开发工作室,欢迎在线学习!'nb2':['admin2','111111'],
'nb3':['admin3','222222']}
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。