yaml 模塊用於處理 yaml 文件,yaml 是一種比xml和json更輕的文件格式,k8s 集羣聲明資源對象就是使用 yaml 文件,使用yaml 模塊能夠更方便的處理yaml 文件python
模塊 經常使用方法nginx
dump: 將一個python對象生成爲yaml文檔json
load: 返回一個對象 app
dump_all:
ide
load_all:spa
簡單示例演示xml
load 對象
yaml_str1 = """ name: jack age: 25 job: IT """ print(yaml_str1, type(yaml_str1)) contnet = yaml.load(yaml_str1) print(contnet, type(contnet))
輸出blog
name: jack age: 25 job: IT <class 'str'> {'name': 'jack', 'age': 25, 'job': 'IT'} <class 'dict'>
dump utf-8
import yaml yaml_str1 = """ name: jack age: 25 job: IT """ print(yaml_str1, type(yaml_str1)) contnet = yaml.load(yaml_str1) print(contnet, type(contnet)) new_content = yaml.dump(contnet, open('t1.yaml', 'w', encoding='utf-8'))
查看生成的文件
# 生成nginx 的yaml 文件
import yaml with open('nginx.yaml', 'r', encoding='utf-8') as f1: content = yaml.load(f1) print(f1) with open('nginxv2.yaml', 'w', encoding='utf-8') as f2: yaml.dump(content, f2) # contnet 對象 f2生成後存放的文件
查看生成後的文件
生成後的文件可運行
yaml 文件裏面能夠聲明多個資源對象,可以使用 load_all
import yaml with open('nginx_busy.yaml', 'r', encoding='utf-8') as f1: content = yaml.load_all(f1) new_content = yaml.dump_all(content) print(new_content, type(new_content)) with open('ng_busy.yaml', 'w', encoding='utf-8') as f2: f2.write(new_content)
查看生成後的文件