python中yaml配置文件模块的使用详解


Posted in Python onApril 27, 2018

简述

和GNU一样,YAML是一个递归着说“不”的名字。不同的是,GNU对UNIX说不,YAML说不的对象是XML。
YAML不是XML。

为什么不是XML呢?因为:

  1. YAML的可读性好。
  2. YAML和脚本语言的交互性好。
  3. YAML使用实现语言的数据类型。
  4. YAML有一个一致的信息模型。
  5. YAML易于实现。

上面5条也就是XML不足的地方。同时,YAML也有XML的下列优点:

YAML可以基于流来处理;

YAML表达能力强,扩展性好。

总之,YAML试图用一种比XML更敏捷的方式,来完成XML所完成的任务。

更多的内容及规范参见http://www.yaml.org。

YAML语法规则:

  1. http://www.ibm.com/developerworks/cn/xml/x-cn-yamlintro/
  2. http://www.yaml.org/

语法

结构通过空格缩进来展示。列表里的项用"-"来代表,字典里的键值对用":"分隔.

这几乎就是所有的语法了.

比如……

一般YAML文件扩展名为.yaml。比如:yaml_example.yaml

将yaml写成配置脚本test.yaml ,以下介绍如何读写yaml配置。

开始使用

1.首先安装yaml模块

pip3 install pyyaml

2.编写yaml配置文件 yaml_example.yaml

name: junxi
age: 18
spouse:
 name: Rui
 age: 18
children:
 - name: Chen You
  age: 3
 - name: Ruo Xi
  age: 2

3.编写解析yaml文件的python程序 yaml_example.py

#!/usr/bin/env python
# _*_ coding:utf-8 _*_
__author__ = 'junxi'

import sys

# sys.path.insert(0, 'D:/program/python-腾讯课程/0-01-python其他模块学习/')

import yaml

f = open('yaml_example.yaml')
content = yaml.load(f)

print type(content)
print '修改前: ', content # 可以看出整个Yaml配置文件是一个字典, 里面可以包含字典和列表
content['age'] = 17  # 根据Key修改对应的值
content['children'][1]['age'] = 1
print '修改后: ', content

程序输出的结果为:

<type 'dict'>
修改前:  {'age': 18, 'spouse': {'age': 18, 'name': 'Rui'}, 'name': 'junxi', 'children': [{'age': 3, 'name': 'Chen You'}, {'age': 2, 'name': 'Ruo Xi'}]}
修改后:  {'age': 17, 'spouse': {'age': 18, 'name': 'Rui'}, 'name': 'junxi', 'children': [{'age': 3, 'name': 'Chen You'}, {'age': 1, 'name': 'Ruo Xi'}]}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python使用htpasswd实现基本认证授权的例子
Jun 10 Python
Python中文编码那些事
Jun 25 Python
python使用自定义user-agent抓取网页的方法
Apr 15 Python
在Python的Flask框架中实现全文搜索功能
Apr 20 Python
学习python类方法与对象方法
Mar 15 Python
Python2.7+pytesser实现简单验证码的识别方法
Dec 29 Python
python实现批量修改图片格式和尺寸
Jun 07 Python
Python wxPython库使用wx.ListBox创建列表框示例
Sep 03 Python
Python重新加载模块的实现方法
Oct 16 Python
浅析PEP572: 海象运算符
Oct 15 Python
详解Python 实现 ZeroMQ 的三种基本工作模式
Mar 24 Python
Python可变集合和不可变集合的构造方法大全
Dec 06 Python
python 拷贝特定后缀名文件,并保留原始目录结构的实例
Apr 27 #Python
python中subprocess批量执行linux命令
Apr 27 #Python
python复制文件到指定目录的实例
Apr 27 #Python
Python多进程multiprocessing.Pool类详解
Apr 27 #Python
python获取程序执行文件路径的方法(推荐)
Apr 26 #Python
python中的文件打开与关闭操作命令介绍
Apr 26 #Python
python3获取当前文件的上一级目录实例
Apr 26 #Python
You might like
php遍历文件夹所有文件子文件夹函数代码
2013/11/27 PHP
yii2整合百度编辑器umeditor及umeditor图片上传问题的解决办法
2016/04/20 PHP
js类中获取外部函数名的方法
2007/08/19 Javascript
javascript+iframe 实现无刷新载入整页的代码
2010/03/17 Javascript
给事件响应函数传参数的四种方式小结
2013/12/05 Javascript
node.js中的http.request.end方法使用说明
2014/12/10 Javascript
js控制文本框只输入数字和小数点的方法
2015/03/10 Javascript
在AngularJS中如何使用谷歌地图把当前位置显示出来
2016/01/25 Javascript
详解JavaScript的AngularJS框架中的表达式与指令
2016/03/05 Javascript
Bootstrap 附加导航(Affix)插件实例详解
2016/06/01 Javascript
Node.js对MongoDB数据库实现模糊查询的方法
2017/05/03 Javascript
nodejs中安装ghost出错的原因及解决方法
2017/10/23 NodeJs
JavaScript中.min.js和.js文件的区别讲解
2019/02/13 Javascript
Vue项目前后端联调(使用proxyTable实现跨域方式)
2020/07/18 Javascript
[01:02:25]2014 DOTA2华西杯精英邀请赛 5 24 iG VS DK
2014/05/26 DOTA
[42:50]NB vs VP 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
[56:57]LGD vs VP 2019DOTA2国际邀请赛淘汰赛 胜者组赛BO3 第一场 8.20.mp4
2019/08/22 DOTA
跟老齐学Python之让人欢喜让人忧的迭代
2014/10/02 Python
Python备份目录及目录下的全部内容的实现方法
2016/06/12 Python
Python中sort和sorted函数代码解析
2018/01/25 Python
python中numpy的矩阵、多维数组的用法
2018/02/05 Python
浅谈tensorflow1.0 池化层(pooling)和全连接层(dense)
2018/04/27 Python
Python3+PyInstall+Sciter解决报错缺少dll、html等文件问题
2019/07/15 Python
解决windows下python3使用multiprocessing.Pool出现的问题
2020/04/08 Python
详解Python中import机制
2020/09/11 Python
BOSE德国官网:尽探索之力,享音乐之极
2016/12/11 全球购物
澳大利亚汽车零部件、音响及配件超市:Automotive Superstore
2018/06/19 全球购物
俄罗斯在线服装店:STOLNIK
2021/03/07 全球购物
校园达人秀策划书
2014/01/12 职场文书
工作交流会欢迎词
2014/01/12 职场文书
初三新学期计划书
2014/05/03 职场文书
八项规定对照检查材料
2014/08/31 职场文书
面试复试通知单
2015/04/24 职场文书
宿舍管理制度范本
2015/08/07 职场文书
2015年党务工作者个人工作总结
2015/10/22 职场文书
如何使用vue3打造一个物料库
2021/05/08 Vue.js