python中yaml配置文件模块的使用详解
作者:君惜 发布时间:2021-06-05 08:06:45
简述
和GNU一样,YAML是一个递归着说“不”的名字。不同的是,GNU对UNIX说不,YAML说不的对象是XML。
YAML不是XML。
为什么不是XML呢?因为:
YAML的可读性好。
YAML和脚本语言的交互性好。
YAML使用实现语言的数据类型。
YAML有一个一致的信息模型。
YAML易于实现。
上面5条也就是XML不足的地方。同时,YAML也有XML的下列优点:
YAML可以基于流来处理;
YAML表达能力强,扩展性好。
总之,YAML试图用一种比XML更敏捷的方式,来完成XML所完成的任务。
更多的内容及规范参见http://www.yaml.org。
YAML语法规则:
http://www.ibm.com/developerworks/cn/xml/x-cn-yamlintro/
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'}]}
来源:https://segmentfault.com/a/1190000014620504


猜你喜欢
- 通过视图来访问数据,其优点是非常明显的。如可以起到数据保密、保证数据的逻辑独立性、简化查询操作等等。但是,话说回来,SQL Server数据
- cron 简介在 Unix-like 操作系统中,有一个大家都很熟悉的 cli 工具,它能够来处理定时任务,周期性任务,这就是:
- 为什么我把自己机子上的数据库备份文件往另一台机子上还原不成功?可能是你在Restore的对话框中选项不正确。Restore 有三个选项,分别
- 本文实例讲述了Python Datetime模块和Calendar模块用法。分享给大家供大家参考,具体如下:datetime模块1.1 概述
- 很多网站注册时都会要求输入电子邮箱,其应用场景是比较广的,例如注册账号接收验证码、注册成功通知、登录通知、找回密码验证通知等。本文将介绍如何
- 5,闭包 闭包意味着内层的函数可以引用存在于包围它的函数内的变量,即使外层函数的执行已经终止。 让我们先来看一个闭包的例子。 <scr
- 记录下如何远程使用服务器上的jupyter notebook。主要是在服务器端执行以下操作:激活需要使用的环境使用pip list 或con
- 前言使用matplotlib生成gif动画的方法有很多,一般常规使用matplotlib的animation模块的FuncAnimation
- 目录合理的创建索引设置数据库持久连接减少SQL的执行次数仅获取需要的字段数据使用批量创建、更新和删除,不随意对结果排序参考网址:Django
- 一:安装Anaconda和Tensorflow步骤:1:从官方网站下载Anacondahttps://www.anaconda.com/do
- 虽然有很多种方式可以解决这个问题,但是我们可以用T-SQL代码来处理这个文件删除过程。我用xp_cmdshell命令和FORFILES命令来
- 本文实例讲述了Python实现的三层BP神经网络算法。分享给大家供大家参考,具体如下:这是一个非常漂亮的三层反向传播神经网络的python实
- 前言正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。Python 自1.5版本起增加了re 模块,它提供
- 废话不多说了,直接给大家贴关键代码了,具体代码如下所示:<!DOCTYPE html PUBLIC "-//W3C//DTD
- Django RBAC权限管理概述RBAC(Role-Based Access Control,基于角色的访问控制),通过角色绑定权限,然后
- 本文实例讲述了Python简单遍历字典及删除元素的方法。分享给大家供大家参考,具体如下:这种方式是一定有问题的:d = {'a
- 写在前面很长一段时间内,我都在研究在线地图的开发者文档,百度地图和高德地图的开发者中心提供了丰富的在线地图服务,虽然有一定的权限限制,但不得
- 正文首先得说明的是,Python的类分为经典类 和 新式类经典类是python2.2之前的东西,但是在2.7还在兼容,但是在3之后的版本就只
- 错误类型: Microsoft JET Database Engine (0x80040E10) 至少一个参数没有被指定值。 原因:在写SQ
- 本文实例讲述了纯JS实现本地图片预览的方法。分享给大家供大家参考。具体如下:刚突然看到,网上已经有很多类似的代码,但没找到一个合适的。就拿自