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


轉自:君惜丶

簡述

和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模塊

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM