python yaml文件数据有序加载与导出

#!/usr/bin/env python3
# encoding: utf-8
# coding style: pep8
# ====================================================
#   Copyright (C)2020 All rights reserved.
#
#   Author        : xxx
#   Email         : [email protected]
#   File Name     : main.py
#   Last Modified : 2020-03-09 17:48
#   Description   :
#
# ====================================================
import sys
import os
import yaml
import ordered_yaml_load_dump as oy

... ...
f_material = open(feature_path+"material/"+"entity.material","r+")
# material_data = yaml.load(f_material,Loader=yaml.FullLoader)
# 有序加载
material_data = oy.ordered_yaml_load(feature_path+"material/"+"entity.material")	
# 修改yaml数据
global intmap,floatmap,vec2map
material_data["properties"]["intmap"].clear()
material_data["properties"]["intmap"] = intmap
material_data["properties"]["floatmap"].clear()
material_data["properties"]["floatmap"] = floatmap
material_data["properties"]["vec2map"].clear()
material_data["properties"]["vec2map"] = vec2map
print("+++++intmap+++++:",intmap)
print("+++++floatmap+++++:",floatmap)
print("+++++vec2map+++++:",vec2map)
f_material.seek(0,0)
f_material.truncate()	# 清空数据
f_material.write('%YAML 1.1\n--- !Material &1\n') # 写入yaml版本信息
# yaml.dump(material_data,f_material,default_flow_style=False)
oy.ordered_yaml_dump(material_data,f_material)
f_material.close()

参考:

猜你喜欢

转载自blog.csdn.net/zxcasd11/article/details/105205057