Python的配置文件模塊yaml的使用

轉自:君惜丶python

簡述

和GNU同樣,YAML是一個遞歸着說「不」的名字。不一樣的是,GNU對UNIX說不,YAML說不的對象是XML。
YAML不是XML。
爲何不是XML呢?由於:ui

  • YAML的可讀性好。
  • YAML和腳本語言的交互性好。
  • YAML使用實現語言的數據類型。
  • YAML有一個一致的信息模型。
  • YAML易於實現。

上面5條也就是XML不足的地方。同時,YAML也有XML的下列優勢:
YAML能夠基於流來處理;
YAML表達能力強,擴展性好。spa

總之,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.yamlcode

將yaml寫成配置腳本test.yaml ,如下介紹如何讀寫yaml配置。xml

開始使用

1.首先安裝yaml模塊

1 pip3 install pyyaml

2.編寫yaml配置文件 yaml_example.yaml

 1 name: junxi
 2 age: 18
 3 spouse:
 4     name: Rui
 5     age: 18
 6 children:
 7     - name: Chen You
 8       age: 3
 9     - name: Ruo Xi
10       age: 2

3.編寫解析yaml文件的python程序 yaml_example.py

1 import yaml
2 
3 f = open('yaml_example.yaml')
4 content = yaml.load(f)
5 print(type(content))
6 print('before modification:', content)
7 content['age'] = 17
8 content['children'][1]['age'] = 1
9 print('after modification', content)

程序輸出的結果爲:對象

1 <type 'dict'>
2 ('before modification:', {'age': 18, 'spouse': {'age': 18, 'name': 'Rui'}, 'name': 'junxi', 'children': [{'age': 3, 'name': 'Chen You'}, {'age': 2, 'name': 'Ruo Xi'}]})
3 ('after modification', {'age': 17, 'spouse': {'age': 18, 'name': 'Rui'}, 'name': 'junxi', 'children': [{'age': 3, 'name': 'Chen You'}, {'age': 1, 'name': 'Ruo Xi'}]})
相關文章
相關標籤/搜索