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用fork来创建子进程注意事项
Jul 03 Python
一个计算身份证号码校验位的Python小程序
Aug 15 Python
Python Tkinter基础控件用法
Sep 03 Python
Python文件操作基本流程代码实例
Dec 11 Python
python特性语法之遍历、公共方法、引用
Aug 08 Python
python实现反转部分单向链表
Sep 27 Python
详解Python odoo中嵌入html简单的分页功能
May 29 Python
Django 开发环境配置过程详解
Jul 18 Python
python获取引用对象的个数方式
Dec 20 Python
Python逐行读取文件内容的方法总结
Feb 14 Python
PIL.Image.open和cv2.imread的比较与相互转换的方法
Jun 03 Python
如何用六步教会你使用python爬虫爬取数据
Apr 06 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中Socket创建与监听实现方法
2015/01/05 PHP
php 输出json及显示json中的中文汉字详解及实例
2016/11/09 PHP
PHP静态延迟绑定和普通静态效率的对比
2017/10/20 PHP
PHP实现简单计算器小程序
2020/08/28 PHP
PHP mkdir创建文件夹实现方法解析
2020/11/13 PHP
基于jQuery的淡入淡出可自动切换的幻灯插件
2010/08/24 Javascript
JavaScript浏览器选项卡效果
2010/08/25 Javascript
基于JQUERY的两个ListBox子项互相调整的实现代码
2011/05/07 Javascript
javascript数组去重3种方法的性能测试与比较
2013/03/26 Javascript
JS随机漂浮广告代码具体实例
2013/11/19 Javascript
jQuery实现的输入框选择时间插件用法实例
2015/02/28 Javascript
Bootstrap入门书籍之(一)排版
2016/02/17 Javascript
ES6中Math对象的部分扩展
2017/02/20 Javascript
React-router中结合webpack实现按需加载实例
2017/05/25 Javascript
详解使用PM2管理nodejs进程
2017/10/24 NodeJs
从vue源码解析Vue.set()和this.$set()
2018/08/30 Javascript
详解vue 数组和对象渲染问题
2018/09/21 Javascript
如何在微信小程序中实现Mixins方案
2019/06/20 Javascript
vue项目中使用AES实现密码加密解密(ECB和CBC两种模式)
2019/08/12 Javascript
Vue实现点击导航栏当前标签后变色功能
2020/08/19 Javascript
python读取txt文件中特定位置字符的方法
2018/12/24 Python
使用Python画股票的K线图的方法步骤
2019/06/28 Python
Python 中@property的用法详解
2020/01/15 Python
tensorflow-gpu安装的常见问题及解决方案
2020/01/20 Python
Python函数基本使用原理详解
2020/03/19 Python
Python 中如何使用 virtualenv 管理虚拟环境
2021/01/21 Python
5分钟实现Canvas鼠标跟随动画背景
2019/11/18 HTML / CSS
德国最大的设计师鞋网上商店:Budapester
2017/12/07 全球购物
文秘专业应届生求职信范文
2013/11/14 职场文书
运动会广播稿150字
2014/02/19 职场文书
初中英语课后反思
2014/04/25 职场文书
合伙开公司协议书范本
2014/10/28 职场文书
勇敢的心观后感
2015/06/09 职场文书
2016年五四青年节校园广播稿
2015/12/17 职场文书
导游词之山东孔庙
2019/11/04 职场文书
讨论nginx location 顺序问题
2022/05/30 Servers