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