zoukankan      html  css  js  c++  java
  • ini

    配置文件读取ini

    config_handler.py
    from configparser import ConfigParser
    
    
    class configHandler(ConfigParser):
    
        def __init__(self,file,encoding='utf-8'):
            """
            :file:配置文件路径
            """
            super().__init__()#初始化ConfigParser,config = ConfigParser()
            self.read(file,encoding=encoding)
    
    if __name__ == '__main__':
        #读取
        config = configHandler('py.ini')
        a = config.get('teachers','name')
        print(a)

    py.ini

    [teachers]
    name = ['zc','zc1']

     封装读取ini文件

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    
    import configparser
    
    class readConfig:
        def __init__(self,filepath):
            self.filepath = filepath
            self.config = configparser.ConfigParser()
            self.config.read(self.filepath)
    
        def read_option(self,section,name):
            value = self.config.get(section,name)
            return value
        def read_sections(self):
            section_list = self.config.sections()
            return section_list
        def read_items(self,section):
            items_list = self.config.items(section)
            return items_list
    
    class writeConfig:
        def __init__(self,filepath):
            self.filepath = filepath
            self.config = configparser.ConfigParser()
            self.config.read(self.filepath)
            self.fp = open(self.filepath,'w')
    
        def set_option(self,section,name,value):
            self.config.set(section,name,value)
    
    
        def add_section(self,section):
            self.config.add_section(section)
    
    
        def add_option(self,section,option,value):
            self.config.set(section,option,value)
    
        def write(self):  #修改配置文件结束后都需要调用改方法写入到配置文件
            self.config.write(self.fp)
    
    if __name__ == '__main__':
        rc = readConfig(r"C:UsersLLTDesktop	est_demopy.ini")
        host = rc.read_option('DATABASE', 'host')
        items = rc.config.items('DATABASE')
        print(items)
        print(host)
    
        # wc = writeConfig(r"D:GitHubconfig.ini")
        # wc.add_section('info')
        # wc.add_option('info','name','xiaobialong')
        # wc.set_option('info','name','xiaobialong2')
        # wc.write()

    读取,修改,yaml文件

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    import yaml
    
    class Getyaml():
    
        def __init__(self,path,param=None,message=None):
            self.path = path    # 文件路径
            self.param = param   # 读取信息的key,不传默认获取所有数据
            self.message = message  #需要写入的参数
    
    #读取yaml中的数据
        def get_data(self):
            with open(self.path,'rb') as f:
                c = yaml.load(f.read(),Loader = yaml.FullLoader)    # 获取yaml文件中的所有数据,禁用报警,转换格式
                if self.param == None:
                    return c    # 返回所有数据
                else:
                    return c.get(self.param)    # 获取键为param的值
    
    # 写入yaml文件
        def echo_data(self):
            with open(self.path,mode='a+',encoding='utf-8') as f:
                yaml.dump(self.message,stream=f,allow_unicode=True) #传入数据,中文要加allow_unicode=True
    
    
    if __name__ == '__main__':
        r = r'C:UsersLLTDesktop	est_demopy24.yaml'
        print(Getyaml(path=r,param='demo').get_data())
    
        m = {"key1": "value1", "key2": "value2", "dict_1": {"dict_2": {"dict_3": ["test1", "test2", "test3"]}}}
        Getyaml(path=r,message=m).echo_data()

    py24.yaml

    dict_1:
      dict_2:
        dict_3:
        - test1
        - test2
        - test3
    key1: value1
    key2: value2
  • 相关阅读:
    JSON的使用总结
    pc端分页插件的使用
    简单修改选择文件样式
    H5中的本地存储
    H5中的 meta 标签及 移动页面单位
    1001. A+B Format (20)
    查看mysql的注册表路径
    win10 64位安装mysql
    [POLITICS] S Korea lawmakers vote to impeach leader
    5-17 Hashing (25分)
  • 原文地址:https://www.cnblogs.com/zcok168/p/12260659.html
Copyright © 2011-2022 走看看