python讀取yaml配置文件


支持多種語言:python、js、golang、java、c、c++

YAML 語言(發音 /ˈjæməl/ )的設計目標,就是方便人類讀寫。它實質上是一種通用的數據串行化格式。

它的基本語法規則如下。

  • 大小寫敏感
  • 使用縮進表示層級關系
  • 縮進時不允許使用Tab鍵,只允許使用空格。
  • 縮進的空格數目不重要,只要相同層級的元素左側對齊即可

# 表示注釋,從這個字符一直到行尾,都會被解析器忽略。

YAML 支持的數據結構有三種。

  • 對象:鍵值對的集合,又稱為映射(mapping)/ 哈希(hashes) / 字典(dictionary)
  • 數組:一組按次序排列的值,又稱為序列(sequence) / 列表(list)
  • 純量(scalars):單個的、不可再分的值

 

安裝插件:

pip install pyyaml

 

PyYAML文檔:https://pyyaml.org/

https://pyyaml.org/wiki/PyYAMLDocumentation

yaml配置文件結構

網上搜搜吧,很多

 

python操作yaml文件:

https://www.cnblogs.com/BlueSkyyj/p/8143826.html

讀取配置:

import yaml
import os

# 獲取當前文件路徑 D:/WorkSpace/StudyPractice/Python_Yaml/YamlStudy
filePath = os.path.dirname(__file__)
print(filePath)
# 獲取當前文件的Realpath  D:\WorkSpace\StudyPractice\Python_Yaml\YamlStudy\YamlDemo.py
fileNamePath = os.path.split(os.path.realpath(__file__))[0]
print(fileNamePath)
# 獲取配置文件的路徑 D:/WorkSpace/StudyPractice/Python_Yaml/YamlStudy\config.yaml
yamlPath = os.path.join(fileNamePath,'config.yaml')
print(yamlPath)
# 加上 ,encoding='utf-8',處理配置文件中含中文出現亂碼的情況。
f = open(yamlPath,'r',encoding='utf-8')

cont = f.read()

x = yaml.load(cont)
print(type(x))
print(x)
print(x['EMAIL'])
print(type(x['EMAIL']))
print(x['EMAIL']['Smtp_Server'])
print(type(x['EMAIL']['Smtp_Server']))
print(x['DB'])
print(x['DB']['host'])

print(x.get('DB').get('host'))

print(type(x.get('DB')))

寫入配置

# 寫入yaml 文件
# a 追加寫入,w,覆蓋寫入
fw = open(yamlPath,'a',encoding='utf-8')
# 構建數據
data = {"cookie1":{'domain': '.yiyao.cc', 'expiry': 1521558688.480118, 'httpOnly': False, 'name': '_ui_', 'path': '/', 'secure': False, 'value': 'HSX9fJjjCIImOJoPUkv/QA=='}}
# 裝載數據
yaml.dump(data,fw)
# 讀取數據,獲取文件
f = open(yamlPath,'r',encoding='utf-8')
# 讀取文件
cont = f.read()
# 加載數據
x = yaml.load(cont)
# 打印數據
print(x)
# 打印讀取寫入的數據
print(x.get("cookie1"))

 

 

參考:

https://yaml.org/

http://www.ruanyifeng.com/blog/2016/07/yaml.html


免責聲明!

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



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