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 相关文章推荐
centos系统升级python 2.7.3
Jul 03 Python
python脚本实现查找webshell的方法
Jul 31 Python
使用Python脚本将文字转换为图片的实例分享
Aug 29 Python
Python和JavaScript间代码转换的4个工具
Feb 22 Python
Python利用前序和中序遍历结果重建二叉树的方法
Apr 27 Python
Python中字典和集合学习小结
Jul 07 Python
浅谈Python2获取中文文件名的编码问题
Jan 09 Python
Python matplotlib的使用并自定义colormap的方法
Dec 13 Python
python日期相关操作实例小结
Jun 24 Python
Python读取YAML文件过程详解
Dec 30 Python
解决django xadmin主题不显示和只显示bootstrap2的问题
Mar 30 Python
python将图片转为矢量图的方法步骤
Mar 30 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
全国FM电台频率大全 - 14 江西省
2020/03/11 无线电
用PHP调用数据库的存贮过程
2006/10/09 PHP
一个php作的文本留言本的例子(二)
2006/10/09 PHP
php小经验:解析preg_match与preg_match_all 函数
2013/06/29 PHP
php usort 使用用户自定义的比较函数对二维数组中的值进行排序
2017/05/02 PHP
Yii框架日志操作图文与实例详解
2019/09/09 PHP
PHP实现随机发扑克牌
2020/04/22 PHP
Riot.js 快速的JavaScript单元测试框架
2009/11/09 Javascript
jQuery之折叠面板的深入解析
2013/06/19 Javascript
简单的邮箱登陆的提示效果类似于yahoo邮箱
2014/02/26 Javascript
react-router4 配合webpack require.ensure 实现异步加载的示例
2018/01/18 Javascript
bootstrap table合并行数据并居中对齐效果
2018/10/17 Javascript
在vue项目中引入highcharts图表的方法
2019/01/21 Javascript
vue 中 beforeRouteEnter 死循环的问题
2019/04/23 Javascript
精读《Vue3.0 Function API》
2020/05/20 Javascript
基于vue 动态菜单 刷新空白问题的解决
2020/08/06 Javascript
js实现纯前端压缩图片
2020/11/16 Javascript
[06:10]6.81新信使新套装!给你一个炫酷的DOTA2
2014/05/06 DOTA
浅谈python内置变量-reversed(seq)
2017/06/21 Python
浅谈pandas中shift和diff函数关系
2018/04/08 Python
ubuntu 16.04下python版本切换的方法
2019/06/14 Python
Django 拆分model和view的实现方法
2019/08/16 Python
python 爬虫百度地图的信息界面的实现方法
2019/10/27 Python
Python实现画图软件功能方法详解
2020/07/28 Python
Python调用SMTP服务自动发送Email的实现步骤
2021/02/07 Python
微软日本官方网站:Microsoft日本
2017/11/26 全球购物
Currentbody澳大利亚:美容仪专家
2019/11/11 全球购物
Aurora London官网:奢华、负担得起的皮革手袋
2020/08/01 全球购物
俄罗斯极限运动网上商店:Board Shop №1
2020/12/18 全球购物
自考毕业生自我鉴定
2013/11/04 职场文书
《诺贝尔》教学反思
2014/02/17 职场文书
学生评语大全
2014/04/18 职场文书
校长四风对照检查材料
2014/09/27 职场文书
党的群众路线教育实践活动专题组织生活会发言材料
2014/10/17 职场文书
幼儿教师远程研修感悟
2015/11/18 职场文书
JavaScript中的宏任务和微任务详情
2021/11/27 Javascript