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 中文字符串的处理实现代码
Oct 25 Python
Python实现二维有序数组查找的方法
Apr 27 Python
Python实现的双色球生成功能示例
Dec 18 Python
Tornado高并发处理方法实例代码
Jan 15 Python
完美解决Pycharm无法导入包的问题 Unresolved reference
May 18 Python
Python2与Python3的区别实例分析
Apr 11 Python
简单分析python的类变量、实例变量
Aug 23 Python
Python3进制之间的转换代码实例
Aug 24 Python
PyTorch实现AlexNet示例
Jan 14 Python
Python 解析简单的XML数据
Jul 24 Python
python实现数学模型(插值、拟合和微分方程)
Nov 13 Python
Python批量解压&压缩文件夹的示例代码
Apr 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
PHP similar_text 字符串的相似性比较函数
2010/05/26 PHP
php基于session锁防止阻塞请求的方法分析
2017/08/07 PHP
Laravel框架实现的记录SQL日志功能示例
2018/06/19 PHP
PHP利用curl发送HTTP请求的实例代码
2020/07/09 PHP
jquery 图片轮换效果
2010/07/29 Javascript
js自定义方法通过隐藏iframe实现文件下载
2013/02/21 Javascript
基于jquery ui的alert,confirm方案(支持换肤)
2015/04/03 Javascript
Javascript Event(事件)的传播与冒泡
2017/01/23 Javascript
JS失效 提示HTML1114: (UNICODE 字节顺序标记)的代码页 utf-8 覆盖(META 标记)的冲突的代码页 utf-8
2017/06/23 Javascript
vue实现引入本地json的方法分析
2018/07/12 Javascript
vue-cli 首屏加载优化问题
2018/11/06 Javascript
Vue+Express实现登录状态权限验证的示例代码
2019/05/05 Javascript
bootstrap datepicker的基本使用教程
2019/07/09 Javascript
使用Typescript开发微信小程序的步骤详解
2021/01/12 Javascript
[02:43]DOTA2亚洲邀请赛场馆攻略——带你走进东方体育中心
2018/03/19 DOTA
使用Python的PEAK来适配协议的教程
2015/04/14 Python
Python实现修改文件内容的方法分析
2018/03/25 Python
对Python Pexpect 模块的使用说明详解
2019/02/14 Python
python 利用文件锁单例执行脚本的方法
2019/02/19 Python
Python 控制终端输出文字的实例
2019/07/12 Python
Python Web版语音合成实例详解
2019/07/16 Python
Python爬虫学习之获取指定网页源码
2019/07/30 Python
Python实现在线批量美颜功能过程解析
2020/06/10 Python
Selenium alert 弹窗处理的示例代码
2020/08/06 Python
解决PyCharm IDE环境下,执行unittest不生成测试报告的问题
2020/09/03 Python
博朗(Braun)俄罗斯官方商店:德国小家电品牌
2019/09/24 全球购物
捷克建筑材料网上商店:DEK.cz
2021/03/06 全球购物
UDP协议功能
2013/01/06 面试题
煤矿安全承诺书
2014/05/22 职场文书
乡镇消防安全责任书
2014/07/23 职场文书
合作经营协议书范本
2014/09/16 职场文书
党支部承诺书
2015/01/20 职场文书
2015年高中生国庆节演讲稿
2015/07/30 职场文书
Go语言切片前或中间插入项与内置copy()函数详解
2021/04/27 Golang
Redis 配置文件重要属性的具体使用
2021/05/20 Redis
Element实现动态表格的示例代码
2021/08/02 Javascript