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使用fileinput模块实现逐行读取文件的方法
Apr 29 Python
Python发送邮件功能示例【使用QQ邮箱】
Dec 04 Python
Python3.7 dataclass使用指南小结
Feb 22 Python
python and or用法详解
Jun 26 Python
python 使用matplotlib 实现从文件中读取x,y坐标的可视化方法
Jul 04 Python
详解Python并发编程之创建多线程的几种方法
Aug 23 Python
初次部署django+gunicorn+nginx的方法步骤
Sep 11 Python
wxPython电子表格功能wx.grid实例教程
Nov 19 Python
使用pandas的box_plot去除异常值
Dec 10 Python
基于python及pytorch中乘法的使用详解
Dec 27 Python
使用pyplot.matshow()函数添加绘图标题
Jun 16 Python
通过实例解析Python RPC实现原理及方法
Jul 07 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/06/03 PHP
thinkphp实现图片上传功能分享
2014/03/04 PHP
php使用mysqli和pdo扩展,测试对比mysql数据库的执行效率完整示例
2019/05/09 PHP
showModelessDialog()使用详解
2006/09/21 Javascript
一个JS翻页效果
2007/07/23 Javascript
jquery动态加载图片数据练习代码
2011/08/04 Javascript
js作用域及作用域链概念理解及使用
2013/04/15 Javascript
HTML Color Picker(js拾色器效果)
2013/08/27 Javascript
javascript获取选中的文本的方法代码
2013/10/30 Javascript
js简单的弹出框有关闭按钮
2014/05/05 Javascript
多引号嵌套的变量命名的问题
2014/05/09 Javascript
js鼠标点击图片切换效果代码分享
2015/08/26 Javascript
js当前页面登录注册框,固定div,底层阴影的实例代码
2016/10/04 Javascript
Bootstrap select下拉联动(jQuery cxselect)
2017/01/04 Javascript
Javascript 一些需要注意的细节(必看篇)
2017/07/08 Javascript
使用Three.js实现太阳系八大行星的自转公转示例代码
2019/04/09 Javascript
详解JavaScript中的坐标和距离
2019/05/27 Javascript
小程序如何自主实现拦截器的示例代码
2019/11/04 Javascript
vue项目中使用bpmn-自定义platter的示例代码
2020/05/11 Javascript
[42:20]2014 DOTA2华西杯精英邀请赛5 24 DK VS NewBee
2014/05/25 DOTA
django中send_mail功能实现详解
2018/02/06 Python
python 通过logging写入日志到文件和控制台的实例
2018/04/28 Python
python使用numpy读取、保存txt数据的实例
2018/10/14 Python
Python设计模式之工厂方法模式实例详解
2019/01/18 Python
Python连接Hadoop数据中遇到的各种坑(汇总)
2020/04/14 Python
利用python实现汉诺塔游戏
2021/03/01 Python
css3实现可滑动跳转的分页插件示例
2014/05/08 HTML / CSS
乐高西班牙官方商店:LEGO Shop ES
2019/12/01 全球购物
暑期社会实践学生的自我评价
2014/01/09 职场文书
《云雀的心愿》教学反思
2014/02/25 职场文书
法律进机关实施方案
2014/03/12 职场文书
国旗下讲话演讲稿
2014/05/08 职场文书
领导班子四风对照检查材料
2014/09/23 职场文书
前台岗位职责
2015/02/13 职场文书
2016护理专业求职自荐书
2016/01/28 职场文书
Python预测分词的实现
2021/06/18 Python