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随机生成数模块random使用实例
Apr 13 Python
python生成器表达式和列表解析
Mar 10 Python
Python实现自动添加脚本头信息的示例代码
Sep 02 Python
使用 Python 实现微信公众号粉丝迁移流程
Jan 03 Python
python读写LMDB文件的方法
Jul 02 Python
基于python实现聊天室程序
Jul 27 Python
python定时任务 sched模块用法实例
Nov 04 Python
解决pyCharm中 module 调用失败的问题
Feb 12 Python
python中如何进行连乘计算
May 28 Python
记录模型训练时loss值的变化情况
Jun 16 Python
PyTorch 导数应用的使用教程
Aug 31 Python
重构Python代码的六个实例
Nov 25 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-5.2 的 php.ini 中文版[金步国翻译]
2011/04/17 PHP
php比较多维数组中值的大小排序实现代码
2012/09/08 PHP
基于Laravel(5.4版本)的基本增删改查操作方法
2019/10/11 PHP
javascript 拖放效果实现代码
2010/01/22 Javascript
Jquery数独游戏解析(一)-页面布局
2010/11/05 Javascript
javascript中的括号()用法小结
2014/04/14 Javascript
JavaScript实现从数组中选出和等于固定值的n个数
2014/09/03 Javascript
jQuery中even选择器的定义和用法
2014/12/23 Javascript
JavaScript获取css行间样式,内连样式和外链样式的简单方法
2016/07/18 Javascript
AngularJS API之copy深拷贝详解及实例
2016/09/14 Javascript
JS实现页面中所有img对象添加onclick事件及新窗口查看图片的方法
2016/12/27 Javascript
vue中keep-alive组件的入门使用教程
2019/06/06 Javascript
js中addEventListener()与removeEventListener()用法案例分析
2020/03/02 Javascript
python去掉字符串中重复字符的方法
2014/02/27 Python
python中MySQLdb模块用法实例
2014/11/10 Python
python使用pil生成缩略图的方法
2015/03/26 Python
在Python的Flask中使用WTForms表单框架的基础教程
2016/06/07 Python
python traceback捕获并打印异常的方法
2018/08/31 Python
Django页面数据的缓存与使用的具体方法
2019/04/23 Python
Pytorch实现GoogLeNet的方法
2019/08/18 Python
Python之指数与E记法的区别详解
2019/11/21 Python
Python散点图与折线图绘制过程解析
2019/11/30 Python
Python3爬虫带上cookie的实例代码
2020/07/28 Python
大学生学年自我鉴定
2014/02/10 职场文书
电子商务专业毕业生求职信
2014/06/12 职场文书
植树节口号
2014/06/21 职场文书
2014年个人业务工作总结
2014/11/17 职场文书
教师个人考察材料
2014/12/16 职场文书
陕西导游词
2015/02/04 职场文书
幼儿教师个人总结
2015/02/05 职场文书
写给老师的保证书
2015/05/09 职场文书
励志语录:时光飞逝,请学会珍惜所有的人和事
2020/01/16 职场文书
nginx限制并发连接请求数的方法
2021/04/01 Servers
浅谈redis五大数据结构和使用场景
2021/04/12 Redis
CSS Transition通过改变Height实现展开收起元素
2021/08/07 HTML / CSS
Linux磁盘管理方法介绍
2022/06/01 Servers