• python yaml文件数据按原有的数据顺序dump


    yml文件的更新后工具类:

    import os
    import yaml
    
    
    class YamlUtils():
        def __init__(self,folder_name='config'):
            self.foler_name = folder_name
    
        def get_yaml_load(self, file_name):
            yaml_filename = self.__get_yaml_file(file_name)
            f = open(yaml_filename, encoding='utf-8')
            yaml_load = yaml.full_load(f)
            return yaml_load  def __get_yaml_file(self, file_name):
            """
            :param file_name: the filename of the configfile
            :return: the objection of the config
            """
            try:
                yaml_file = self.__get_file_path(self.foler_name, file_name)
                return yaml_file
            except Exception as e:
                print("read config file error:" + str(e))
    
        @staticmethod
        def __get_file_path(folder_name, file_name):
            """
            :param folder_name: the directory of the config ,the default directory is config
            :param file_name: the filename of the configfile
            :return: the objection of the config
            """
            try:
                config_path = os.path.abspath('..')
                folder_path = os.path.join(config_path, folder_name)
                file_path = os.path.join(folder_path, file_name)
                return file_path
            except Exception as e:
                print('read config file failed ' + str(e))
        def set_yaml(self, file_name,content):
            """
            调用此方法时,需新建一个YamlUtils().set_yaml(file_name,content)
            用原来的设置不会生效
            default_flow_style=False : 表示dump后的字典数据全部以yml格式显示,默认为为True
            sort_keys=False : 表示dump后的字典数据按原有的顺序示,为True时按字母的排序展示,默认为为True
            """
            yaml_filename = self.__get_yaml_file(file_name)
            f = open(yaml_filename,'w', encoding='utf-8')
            yaml_dump = yaml.dump(content,f,allow_unicode=True, default_flow_style=False,sort_keys=False)
            # print("数据更新完成")
            return yaml_dump

    yml文件原有数据顺序:

    更改字段值后的顺序:

     出现原因是:

    yaml.dump(content,f,allow_unicode=True, default_flow_style=False,sort_keys=True)
    该行的代码中sort_keys的默认值为True,改为Flase后可修复代顺序变化的问题

  • 相关阅读:
    前向传播与反向传播
    卷积运算
    使用GUI工具Portainer.io管控Docker容器
    NextCloud: 打造自己的网盘
    金融危机和经济危机有什么不同
    【转载】Windows环境的Workflow神器:AutoHotkey
    Lua常用模块
    Lua基本语法
    区分 IaaS、SaaS 和 PaaS
    【笔记】流畅的Python
  • 原文地址:https://www.cnblogs.com/cherylgi/p/16455255.html
Copyright © 2020-2023  润新知