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实现电子词典
Apr 23 Python
基于windows下pip安装python模块时报错总结
Jun 12 Python
python微信公众号之关键词自动回复
Jun 15 Python
Python3实现转换Image图片格式
Jun 21 Python
Python之list对应元素求和的方法
Jun 28 Python
python3.6数独问题的解决
Jan 21 Python
Python实现的排列组合、破解密码算法示例
Apr 12 Python
Python3 串口接收与发送16进制数据包的实例
Jun 12 Python
python使用flask与js进行前后台交互的例子
Jul 19 Python
对python中url参数编码与解码的实例详解
Jul 25 Python
Jupyter notebook运行Spark+Scala教程
Apr 10 Python
如何用Matlab和Python读取Netcdf文件
Feb 19 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
PHP4.04简明安装
2006/10/09 PHP
PHP编码规范之注释和文件结构说明
2010/07/09 PHP
php实现微信公众平台账号自定义菜单类
2015/10/11 PHP
Laravel框架中Blade模板的用法示例
2017/08/30 PHP
PHP随机生成中文段落示例【测试网站内容时使用】
2020/04/26 PHP
自己写的兼容ie和ff的在线文本编辑器类似ewebeditor
2012/12/12 Javascript
关于IE中getElementsByClassName不能用的问题解决方法
2013/08/26 Javascript
jquery实现弹出div,始终显示在屏幕正中间的简单实例
2014/03/08 Javascript
使用JS取得焦点(focus)元素代码
2014/03/22 Javascript
javascript中兼容主流浏览器的动态生成iframe方法
2014/05/05 Javascript
JS扩展方法实例分析
2015/04/15 Javascript
基于jQuery实现搜索关键字自动匹配功能
2020/03/26 Javascript
javascript基础知识分享之类与函数化
2016/02/13 Javascript
javascript鼠标滑过显示二级菜单特效
2020/11/18 Javascript
深入浅出ES6之let和const命令
2016/08/25 Javascript
js实现div色块碰撞
2020/01/16 Javascript
js模拟实现百度搜索
2020/06/28 Javascript
python实现随机漫步算法
2018/08/27 Python
python 对key为时间的dict排序方法
2018/10/17 Python
树莓派采用socket方式文件传输(python)
2019/06/22 Python
Python hashlib模块加密过程解析
2019/11/05 Python
Python使用Tkinter实现转盘抽奖器的步骤详解
2020/01/06 Python
python入门教程之基本算术运算符
2020/11/13 Python
用python对excel查重
2020/12/07 Python
详解Canvas 实现炫丽的粒子运动效果(粒子生成文字)
2018/02/01 HTML / CSS
前端实现弹幕效果的方法总结(包含css3和canvas的实现方式)
2018/07/12 HTML / CSS
皮尔·卡丹巴西官方商店:Pierre Cardin
2017/07/21 全球购物
应届生求职简历的自我评价怎么写
2013/10/23 职场文书
一年级数学教学反思
2014/02/01 职场文书
总经理岗位职责描述
2014/02/08 职场文书
小松树教学反思
2014/02/11 职场文书
业务部门经理岗位职责
2014/02/23 职场文书
幼儿园教师岗位职责
2014/03/17 职场文书
最美孝心少年事迹材料
2014/08/15 职场文书
小学生六年级作文之关于感恩
2019/08/16 职场文书
pytorch 梯度NAN异常值的解决方案
2021/06/05 Python