python中yaml配置文件模块的使用详解

作者:君惜 时间:2021-06-05 08:06:45 

简述

和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'}]}

来源:https://segmentfault.com/a/1190000014620504

标签:python,yaml,配置文件
0
投稿

猜你喜欢

  • em和strong的区别

    2008-12-23 12:08:00
  • SQL Server数据库服务器高性能设置

    2010-11-25 16:00:00
  • 网站设计趋势: iPhones[译]

    2009-09-21 12:40:00
  • jQuery 横向滚动图片

    2009-03-11 13:09:00
  • 从MySQL导大量数据的程序实现方法

    2009-03-06 14:34:00
  • Oracle 分析函数RANK(),ROW_NUMBER(),LAG()等的使用方法

    2009-11-05 21:45:00
  • CSS sprites图片拼合生成器

    2007-10-15 12:25:00
  • 又一个仿alert提示效果

    2007-12-24 17:34:00
  • 如何编制一个产生随机密码的函数?

    2009-11-08 19:06:00
  • 纯ASP结合VML生成完美图-饼图

    2010-05-11 16:49:00
  • 微信小程序开发之获取用户手机号码(php接口解密)

    2023-11-15 03:34:59
  • 如何做一个文本书写器?

    2010-07-12 18:58:00
  • asp用正则解析远程图片地址,用XMLHTTP将其保存

    2007-10-26 12:34:00
  • php Exception异常处理详解

    2023-05-29 21:51:37
  • mysql3升级到mysql5解决乱码心得

    2009-04-20 14:41:00
  • SQL大讲堂:如何了解SQL的执行频率

    2009-09-05 09:40:00
  • ORACLE 正则解决初使化数据格式不一致

    2009-05-24 19:44:00
  • ThinkPHP5中如何使用redis

    2023-06-13 01:09:10
  • asp如何显示最后十名来访者信息?

    2010-06-09 18:45:00
  • php中获取指定IP的物理地址的代码(正则表达式)

    2023-11-23 07:04:36
  • asp之家 网络编程 m.aspxhome.com