python 中yaml文件用法大全

yaml簡單介紹

YAML是一種標記語言,它使用空白符號縮進和大量依賴外觀的特色,特別適合用來表達或編輯數據結構、各種配置文件、傾印調試內容、文件大綱。

  • 大小寫敏感
  • 使用縮進表示層級關系
  • 縮進不允許使用tab,隻允許空格
  • 縮進的空格數不重要,隻要相同層級的元素左對齊即可
  • ‘#’表示註釋

yaml數組

yaml語音數組很簡單,使用短橫線 ‘-‘ 作為數組的開始標志。

一維數組

import yaml
#三個雙引號的作用是字符換行不需要加換行符
y = """
- 111
- 222
- 333
"""
# y等同於y1
y1 = '- 111\n- 222\n- 333'
config = yaml.safe_load(y)
config

out: [111, 222, 333]

二維數組

二維數組就是按照縮進關系來的,更多維數組道理相同,具體看下面的代碼:

import yaml
y = """
-
  - 111
  - 222
  - 333
-
  - 111
  - 222
  - 333
"""
config = yaml.safe_load(y)
config

out : [[111, 222, 333], [111, 222, 333]]

yaml字典

簡單字典形式

yaml字典的模式是Key: value 形式,中間使用冒號+空格進行連接

import yaml
y = """
'0': 1
'1': 2
'2': 3
"""
config = yaml.safe_load(y)
config

out: {‘0′: 1, ‘1′: 2, ‘2′: 3}

復雜字典形式

下面的例子中,我們使用一個嵌套字典,就是字典裡面的value值又是一個字典

import yaml
y1 = """
object1:
  'key1': 0
  'key2': 1
object2:
  'key1': 0
  'key2': 1  
"""
config = yaml.safe_load(y1)
config

out: {‘object1′: {‘key1′: 0, ‘key2′: 1}, ‘object2′: {‘key1′: 0, ‘key2′: 1}}

yaml 復雜結構 數組裡面嵌入字典

import yaml
y1 = """
-
  'key1': 0
  'key2': 1
-
  'key1': 0
  'key2': 1
"""
config = yaml.safe_load(y1)
config

out: [{‘key1′: 0, ‘key2′: 1}, {‘key1′: 0, ‘key2′: 1}]

字典裡面嵌入數組

import yaml
y1 = """
object1:
  - 111
  - 222
object2:
  - 111
  - 222
"""
config = yaml.safe_load(y1)
config

out : {‘object1′: [111, 222], ‘object2′: [111, 222]}

yaml讀取和寫入

YAML.yml文件內容:

image-20210703183540378

# yaml文件讀取
import yaml
with open('YAML.yml','r')as f:
    config = yaml.safe_load(f)
config

out:[0, 111, 222]

# yaml寫入文件
config = [1,2,3]
with open('YAML1.yml','w')as f:
    yaml.dump(config,f)

YAML1.yml文件內容:

image-20210703183433312

資料參考:

 YAML菜鳥教程

總結

yaml文件是項目配置常用的配置文件,通常我們會將超參數和一些常用值放在配置文件中,方便修改,讀取也十分的方便。

到此這篇關於python 中yaml文件用法大全的文章就介紹到這瞭,更多相關python 中yaml文件用法內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: