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 08 Python
Python实现的三层BP神经网络算法示例
Feb 07 Python
python requests指定出口ip的例子
Jul 25 Python
Python 依赖库太多了该如何管理
Nov 08 Python
NumPy中的维度Axis详解
Nov 26 Python
python 实现list或string按指定分段
Dec 25 Python
使用python turtle画高达
Jan 19 Python
Pytorch使用PIL和Numpy将单张图片转为Pytorch张量方式
May 25 Python
python开发前景如何
Jun 11 Python
浅谈pytorch中的BN层的注意事项
Jun 23 Python
Python进程池与进程锁之语法学习
Apr 11 Python
python模拟浏览器 使用selenium进入好友QQ空间并留言
Apr 12 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
肝肠寸断了解下!盘点史上最伤心的十大动漫
2020/03/04 日漫
用PHP制作静态网站的模板框架
2006/10/09 PHP
mysql5详细安装教程
2007/01/15 PHP
PHP实现微信图片上传到服务器的方法示例
2017/06/29 PHP
laravel框架语言包拓展实现方法分析
2019/11/22 PHP
详解no input file specified 三种解决方法
2019/11/29 PHP
Javascript调用C#代码
2011/01/17 Javascript
js 获取和设置css3 属性值的实现方法
2013/05/06 Javascript
JavaScript自定义数组排序方法
2015/02/12 Javascript
简介JavaScript中getUTCMonth()方法的使用
2015/06/10 Javascript
整理Javascript基础入门学习笔记
2015/11/29 Javascript
Javascript中神奇的this
2016/01/20 Javascript
jQuery+ajax实现滚动到页面底部自动加载图文列表效果(类似图片懒加载)
2016/06/07 Javascript
jQuery 跨域访问解决原理案例详解
2016/07/09 Javascript
JavaScript事件方法(实例讲解)
2017/06/27 Javascript
JS 组件系列之Bootstrap Table的冻结列功能彻底解决高度问题
2017/06/30 Javascript
bootstrap select下拉搜索插件使用方法详解
2017/11/23 Javascript
node中的cookie的具体使用
2018/09/13 Javascript
JS事件绑定的常用方式实例总结
2019/03/02 Javascript
javascript实现超好看的3D烟花特效
2020/01/01 Javascript
vuejs实现下拉框菜单选择
2020/10/23 Javascript
使用Vant完成通知栏Notify的提示操作
2020/11/11 Javascript
[12:29]2018国际邀请赛 开幕秀
2018/08/22 DOTA
python计算牛顿迭代多项式实例分析
2015/05/07 Python
Python实现多线程抓取网页功能实例详解
2017/06/08 Python
python交互式图形编程实例(一)
2017/11/17 Python
Python新建项目自动添加介绍和utf-8编码的方法
2020/12/26 Python
Europcar葡萄牙:葡萄牙汽车和货车租赁
2017/10/13 全球购物
校园达人秀策划书
2014/01/12 职场文书
小学生考试获奖感言
2014/01/30 职场文书
个人廉洁自律承诺书
2014/03/27 职场文书
创先争优一句话承诺
2014/05/29 职场文书
房屋租赁协议书
2014/10/18 职场文书
先进典型事迹材料
2014/12/29 职场文书
基于angular实现树形二级表格
2021/10/16 Javascript
PostgreSQL 插入INSERT、删除DELETE、更新UPDATE、事务transaction
2022/04/12 PostgreSQL