yaml 模块用于处理 yaml 文件,yaml 是一种比xml和json更轻的文件格式,k8s 集群声明资源对象就是使用 yaml 文件,使用yaml 模块可以更方便的处理yaml 文件
模块 常用方法
dump: 将一个python对象生成为yaml文档
load: 返回一个对象
dump_all:
load_all:
简单示例演示
load
yaml_str1 = """name: jackage: 25job: IT """print(yaml_str1, type(yaml_str1))contnet = yaml.load(yaml_str1)print(contnet, type(contnet))
输出
name: jackage: 25job: IT{'name': 'jack', 'age': 25, 'job': 'IT'}
dump
import yamlyaml_str1 = """name: jackage: 25job: 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 yamlwith 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 yamlwith 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)
查看生成后的文件