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 相关文章推荐
如何利用Fabric自动化你的任务
Oct 20 Python
Python嵌套列表转一维的方法(压平嵌套列表)
Jul 03 Python
django从请求到响应的过程深入讲解
Aug 01 Python
python判断输入日期为第几天的实例
Nov 13 Python
Python闭包思想与用法浅析
Dec 27 Python
从0开始的Python学习014面向对象编程(推荐)
Apr 02 Python
一文了解Python并发编程的工程实现方法
May 31 Python
Python QQBot库的QQ聊天机器人
Jun 19 Python
python 实现将多条曲线画在一幅图上的方法
Jul 07 Python
PyCharm GUI界面开发和exe文件生成的实现
Mar 04 Python
详解Python中@staticmethod和@classmethod区别及使用示例代码
Dec 14 Python
Python经典五人分鱼实例讲解
Jan 04 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
Blitz templates 最快的PHP模板引擎
2010/04/06 PHP
远离JS灾难css灾难之 js私有函数和css选择器作为容器
2011/12/11 Javascript
JavaScript 判断用户输入的邮箱及手机格式是否正确
2013/12/08 Javascript
a标签的href与onclick事件的区别详解
2014/11/12 Javascript
jQuery中each()方法用法实例
2014/12/27 Javascript
javascript中定义类的方法汇总
2014/12/28 Javascript
Express实现前端后端通信上传图片之存储数据库(mysql)傻瓜式教程(二)
2015/12/10 Javascript
jquery简单倒计时实现方法
2015/12/18 Javascript
jQuery插件实现文字无缝向上滚动效果代码
2016/02/25 Javascript
js实现随机点名系统(实例讲解)
2017/10/18 Javascript
JS运动特效之同时运动实现方法分析
2018/01/24 Javascript
vue.js做一个简单的编辑菜谱功能
2018/05/08 Javascript
nodejs处理tcp连接的核心流程
2021/02/26 NodeJs
py2exe 编译ico图标的代码
2013/03/08 Python
python学习入门细节知识点
2018/03/29 Python
Python中if elif else及缩进的使用简述
2018/05/31 Python
python 字典中取值的两种方法小结
2018/08/02 Python
浅谈Python脚本开头及导包注释自动添加方法
2018/10/27 Python
python执行scp命令拷贝文件及文件夹到远程主机的目录方法
2019/07/08 Python
Django如何使用第三方服务发送电子邮件
2019/08/14 Python
Django项目之Elasticsearch搜索引擎的实例
2019/08/21 Python
python基于K-means聚类算法的图像分割
2019/10/30 Python
python GUI库图形界面开发之PyQt5树形结构控件QTreeWidget详细使用方法与实例
2020/03/02 Python
Python yield的用法实例分析
2020/03/06 Python
Django启动时找不到mysqlclient问题解决方案
2020/11/11 Python
对pytorch中x = x.view(x.size(0), -1) 的理解说明
2021/03/03 Python
香蕉共和国工厂店:Banana Republic Factory
2018/06/09 全球购物
廉洁校园实施方案
2014/05/25 职场文书
服务标语口号
2014/07/01 职场文书
党委书记个人检查对照材料思想汇报
2014/10/11 职场文书
2014年仓库管理员工作总结
2014/11/18 职场文书
2015年机关党委工作总结
2015/05/23 职场文书
单位更名证明
2015/06/18 职场文书
汤姆叔叔的小屋读书笔记
2015/06/30 职场文书
Python并发编程实例教程之线程的玩法
2021/06/20 Python
Java界面编程实现界面跳转
2022/06/16 Java/Android