• 人生苦短_我用Python_configparser/yaml对配置文件读取/写入操作_010


    第一,我们先开始安装yaml库,configparser是自带库,yaml库是针对读取yml文件,configparser现阶段我只用于读取conf文件

    首先:
    1)对象文件为:data.yml,下面的data.yml文件的内容:
    data: [1, 'System_GetAreaList_success', 'post', 'http://10.20.250.80:8081/system/unauth/address/getAreaList.do', "{'cityId':'110100'}", 110100]
    demo_data: [
    ['test_case_001', 'success', 'get', 'http://v.juhe.cn/laohuangli/d', "{'data':2018-09-11, 'key':'5a65de1ce7394ba6afe185cf5873415c'}", 'successed'],
    ['test_case_002', 'success', 'post', 'http://v.juhe.cn/laohuangli/d', "{'data':2018-09-12, 'key':'5a65de1ce7394ba6afe185cf5873415c'}", 'successed'],
    ['test_case_003', 'key_error', 'post', 'http://v.juhe.cn/laohuangli/d', "{'data':2018-09-12, 'key':'5a65de1ce7394ba6afe185cdsa3416c'}", '错误的请求KEY!!'],
    ['test_case_004', 'data_null', 'post', 'http://v.juhe.cn/laohuangli/d', "{'data':'', 'key':'5a65de1ce7394ba6afe185cf5873417c'}", '错误的请求KEY!!'],
    ['test_case_005', 'key_null', 'post', 'http://v.juhe.cn/laohuangli/d', "{'data':2018-09-12, 'key':''}", '错误的请求KEY!!']
    ]
    以下的针对读取data.yml的code:
    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    # @Time    : 2018/6/24 10:49
    # @Author  : Mr.chen
    # @Site    : 
    # @File    : getData.py
    # @Software: PyCharm
    # @Email   : 794281961@qq.com
    import yaml
    
    
    def get_conf_data(file="./data.yml"):  # 传进配置文件的路径
        f_data = open(file, 'r', encoding='utf-8')  # utf-8编码只读方式打开文件
        conf_data = yaml.load(f_data)  # 读取对象文件
        f_data.close()  # 关闭对象文件
        print(conf_data['data'])
    
    
    get_conf_data()

    2)对象文件为conf文件时,例如下面是"db.conf"文件时,内容为:

    [DATABASE]
    config_env = {
    'host': '118.126.108.173', # :主机
    'user': 'python', # :用户名
    'password': 'python5666', # :密码
    'port': 3306, # :端口
    'database': 'test_summer' # :库
    }
    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    # @Time    : 2018/6/23 0:06
    # @Author  : Mr.chen
    # @Site    : 
    # @File    : class_06_21_getConfig_002.py
    # @Software: PyCharm
    # @Email   : 794281961@qq.com
    
    import configparser  # 专门读取配置文件的类
    
    
    class ConfigOperation:
        def Config_read(self, file_name: object, section_: object, option_: object) -> object:
            cf = configparser.ConfigParser()
            cf.read(file_name)  # 打开配置文件
            config = cf.get(section_, option_)  # section==[标签名]  option==Key
            return eval(config)
    
        def Config_write(self):  # 写配置文件
            cf = configparser.ConfigParser()
            cf.read("db.conf")
            cf.add_section('a_new_sectioneee1')  # 添加新的域
            cf.set('a_new_sectioneee1', 'new_key', 'new_value')  # 在新的域下面,set相关的section/option
            with open("db.conf", "w+") as f:
                cf.write(f)
    
    
    if __name__ == '__main__':
        t = ConfigOperation()
        t.Config_write()
        print(t.Config_read('db.conf', 'DATABASE', 'config_env'))  # 我们需要的config_env是一个dict,但是从conf文件读出来的是str类型,所以需要用eval转换
    Ps:yml文件的读取速度比较快,所以建议一些经常读写的数据建议放在yml文件中去,例如sql,配置信息,测试数据类似的数据。
  • 相关阅读:
    TdxGaugeControl
    TdxSkinController
    delphi TdxMemData 使用
    深入方法(16)- 方法的顺序
    深入方法(15)- 调用其他单元的函数
    深入方法(14)- 在TForm1 类内声明的方法
    深入方法(13)- 在 interface 区声明的方法
    深入方法(12)- implementation 区中的方法
    深入方法(11)- 参数前缀
    深入方法(10)- 默认参数
  • 原文地址:https://www.cnblogs.com/mrchenyushen/p/9222402.html
Copyright © 2020-2023  润新知