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正则表达式匹配ip地址实例
Oct 09 Python
Python字符串中查找子串小技巧
Apr 10 Python
浅谈Python基础之I/O模型
May 11 Python
Python贪心算法实例小结
Apr 22 Python
使用python3+xlrd解析Excel的实例
May 04 Python
python3.6利用pyinstall打包py为exe的操作实例
Oct 31 Python
python 在屏幕上逐字显示一行字的实例
Dec 24 Python
Python基于plotly模块实现的画图操作示例
Jan 23 Python
Python 绘制酷炫的三维图步骤详解
Jul 12 Python
使用遗传算法求二元函数的最小值
Feb 11 Python
python判断变量是否为int、字符串、列表、元组、字典的方法详解
Feb 13 Python
Django如何在不停机的情况下创建索引
Aug 02 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
不用iconv库的gb2312与utf-8的互换函数
2006/10/09 PHP
PHP 和 HTML
2006/10/09 PHP
PHP新手上路(三)
2006/10/09 PHP
openPNE常用方法分享
2011/11/29 PHP
php入门教程之Zend Studio设置与开发实例
2016/09/09 PHP
阿里对象存储OSS在laravel框架中的使用方法
2019/10/13 PHP
JavaScript 图像动画的小demo
2012/05/23 Javascript
Underscore.js 的模板功能介绍与应用
2012/12/24 Javascript
JavaScript(js)设置默认输入焦点(focus)
2012/12/28 Javascript
HTML上传控件取消选择
2013/03/06 Javascript
js添加千分位的实现代码(超简单)
2016/08/01 Javascript
JavaScript实战之菜单特效
2016/08/16 Javascript
在网页中插入百度地图的步骤详解
2016/12/02 Javascript
js实现自动图片轮播代码
2017/03/22 Javascript
Bootstrap实现的经典栅格布局效果实例【附demo源码】
2017/03/30 Javascript
angular写一个列表的选择全选交互组件的示例
2018/01/22 Javascript
javascript高仿热血传奇游戏实现代码
2018/02/22 Javascript
微信小程序实践之动态控制组件的显示/隐藏功能
2018/07/18 Javascript
深入Vue-Router路由嵌套理解
2018/08/13 Javascript
微信小程序实现的动态设置导航栏标题功能示例
2019/01/31 Javascript
vue使用高德地图根据坐标定位点的实现代码
2019/08/22 Javascript
vue 实现一个简单的全局调用弹窗案例
2020/09/10 Javascript
Vue router安装及使用方法解析
2020/12/02 Vue.js
python使用Tkinter显示网络图片的方法
2015/04/24 Python
讲解Python中运算符使用时的优先级
2015/05/14 Python
在Django的通用视图中处理Context的方法
2015/07/21 Python
python爬取微信公众号文章
2018/08/31 Python
python调用webservice接口的实现
2019/07/12 Python
Python识别快递条形码及Tesseract-OCR使用详解
2019/07/15 Python
Python引入多个模块及包的概念过程解析
2020/09/21 Python
使用CSS3制作响应式导航菜单的方法
2015/07/12 HTML / CSS
ZINVO手表官网:男士和女士手表
2019/03/10 全球购物
公司活动邀请函
2014/01/24 职场文书
2015年电话销售工作总结范文
2015/04/20 职场文书
心灵捕手观后感
2015/06/02 职场文书
【海涛解说】史上最给力比赛,挑战DOTA极限
2022/04/01 DOTA