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 01 Python
python中__call__内置函数用法实例
Jun 04 Python
Python实现简单字典树的方法
Apr 29 Python
Python模拟鼠标点击实现方法(将通过实例自动化模拟在360浏览器中自动搜索python)
Aug 23 Python
python爬虫获取京东手机图片的图文教程
Dec 29 Python
python使用筛选法计算小于给定数字的所有素数
Mar 19 Python
python安装twisted的问题解析
Aug 21 Python
Python中的self用法详解
Aug 06 Python
Python利用matplotlib绘制约数个数统计图示例
Nov 26 Python
Ranorex通过Python将报告发送到邮箱的方法
Jan 12 Python
python获取本周、上周、本月、上月及本季的时间代码实例
Sep 08 Python
Pytest中skip和skipif的具体使用方法
Jun 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
目录,文件操作详谈―PHP
2006/11/25 PHP
PHP数组排序函数合集 以及它们之间的联系分析
2013/06/27 PHP
微信公众号OAuth2.0网页授权问题浅析
2017/01/21 PHP
php使用filter_var函数判断邮箱,url,ip格式示例
2019/07/06 PHP
jQuery阻止冒泡和HTML默认操作
2010/11/17 Javascript
jquery 插件学习(二)
2012/08/06 Javascript
解析浏览器端的AJAX缓存机制
2016/06/21 Javascript
jQuery购物网页经典制作案例
2016/08/19 Javascript
Jquery中attr与prop的区别详解
2017/05/27 jQuery
微信小程序 蓝牙的实现实例代码
2017/06/27 Javascript
Web安全之XSS攻击与防御小结
2018/12/13 Javascript
详解js常用分割取字符串的方法
2019/05/15 Javascript
vue flex 布局实现div均分自动换行的示例代码
2020/08/05 Javascript
手写Vue2.0 数据劫持的示例
2021/03/04 Vue.js
linux环境下安装pyramid和新建项目的步骤
2013/11/27 Python
Python中的Numpy入门教程
2014/04/26 Python
Python 性能优化技巧总结
2016/11/01 Python
python实现简易云音乐播放器
2018/01/04 Python
Python+PIL实现支付宝AR红包
2018/02/09 Python
python-docx修改已存在的Word文档的表格的字体格式方法
2018/05/08 Python
Python二维码生成识别实例详解
2019/07/16 Python
Win10系统下安装labelme及json文件批量转化方法
2019/07/30 Python
Python中的__init__作用是什么
2020/06/09 Python
python + selenium 刷B站播放量的实例代码
2020/06/12 Python
五种Python转义表示法
2020/11/27 Python
美国药妆网站:EDCskincare.com(防晒、痤疮、抗衰老等)
2017/04/28 全球购物
Linux管理员面试经常问道的相关命令
2013/04/29 面试题
优秀实习自我鉴定
2013/12/04 职场文书
自动化专业职业生涯规划书范文
2014/01/16 职场文书
优秀企业获奖感言
2014/02/01 职场文书
高二物理教学反思
2014/02/08 职场文书
数控机床专业自荐信
2014/05/19 职场文书
优秀班主任先进事迹材料
2014/12/16 职场文书
大学生国家助学金感谢信
2015/01/23 职场文书
奖励申请报告范文
2015/05/15 职场文书
SpringBoot集成Redis的思路详解
2021/10/16 Redis