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'))

查看生成的文件

image.png

# 生成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生成后存放的文件

查看生成后的文件

image.png

生成后的文件可运行

image.png

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)

查看生成后的文件

image.png

image.png

image.png