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中字符串的操作方法大全
Jun 03 Python
详解python selenium 爬取网易云音乐歌单名
Mar 28 Python
django框架面向对象ORM模型继承用法实例分析
Jul 29 Python
阿里云ECS服务器部署django的方法
Aug 29 Python
Tensorflow 卷积的梯度反向传播过程
Feb 10 Python
python中的selenium安装的步骤(浏览器自动化测试框架)
Mar 17 Python
Python的PIL库中getpixel方法的使用
Apr 09 Python
python实现批量命名照片
Jun 18 Python
Pycharm Available Package无法显示/安装包的问题Error Loading Package List解决
Sep 18 Python
python爬虫中url管理器去重操作实例
Nov 30 Python
Python requests库参数提交的注意事项总结
Mar 29 Python
python脚本框架webpy的url映射详解
Nov 20 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
利用static实现表格的颜色隔行显示
2006/10/09 PHP
让PHP开发者事半功倍的十大技巧小结
2010/04/20 PHP
PHP文章采集URL补全函数(FormatUrl)
2012/08/02 PHP
PHP $_FILES中error返回值详解
2014/01/30 PHP
zf框架的数据库追踪器使用示例
2014/03/13 PHP
CodeIgniter表单验证方法实例详解
2016/03/03 PHP
PHP快速排序quicksort实例详解
2016/09/28 PHP
仿服务器端脚本方式的JS模板实现方法
2007/04/27 Javascript
javascript禁止访客复制网页内容的实现代码
2015/08/05 Javascript
jquery UI Datepicker时间控件的使用方法(加强版)
2015/11/07 Javascript
JavaScript中实现键值对应的字典与哈希表结构的示例
2016/06/12 Javascript
多功能jQuery树插件zTree实现权限列表简单实例
2016/07/12 Javascript
js学习之----深入理解闭包
2016/11/21 Javascript
node.js + socket.io 实现点对点随机匹配聊天
2017/06/30 Javascript
小程序自定义模板实现吸顶功能
2020/01/08 Javascript
Nuxt配置Element-UI按需引入的操作方法
2020/07/06 Javascript
JS实现超级好看的鼠标小尾巴特效
2020/12/01 Javascript
python实现监控windows服务并自动启动服务示例
2014/04/17 Python
Pycharm编辑器技巧之自动导入模块详解
2017/07/18 Python
解决pandas 作图无法显示中文的问题
2018/05/24 Python
python之django母板页面的使用
2018/07/03 Python
python实现简易动态时钟
2018/11/19 Python
利用python和ffmpeg 批量将其他图片转换为.yuv格式的方法
2019/01/08 Python
Django Session和Cookie分别实现记住用户登录状态操作
2020/07/02 Python
opencv 图像礼帽和图像黑帽的实现
2020/07/07 Python
微信小程序实现可实时改变转速的css3旋转动画实例代码
2018/09/11 HTML / CSS
css3 按钮 利用css3实现超酷下载按钮
2013/03/18 HTML / CSS
全球知名旅游社区法国站点:TripAdvisor法国
2016/08/03 全球购物
个人找工作的自我评价
2013/10/17 职场文书
博士生入学考试推荐信
2013/11/17 职场文书
自荐信的基本格式
2014/02/22 职场文书
公司经理任命书
2014/06/05 职场文书
质量负责人任命书
2014/06/06 职场文书
医生学习党的群众路线教育实践活动心得体会
2014/11/03 职场文书
一起来看看Vue的核心原理剖析
2022/03/24 Vue.js
vue选项卡切换的实现案例
2022/04/11 Vue.js