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)
查看生成后的文件