zoukankan      html  css  js  c++  java
  • 人生苦短_我用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,配置信息,测试数据类似的数据。
  • 相关阅读:
    K8S实战(十七)| 通过 StorageClass 实现动态卷供应
    K8S实战(十六)| 持久化存储卷
    K8S实战(十五)| 存储卷概念
    K8S实战(十四)| ConfigMap 对象
    K8S实战(十三)| Secret 对象
    K8S实战(十二)| 为 Ingress 以及后端 Nginx 增加证书
    批量删除git 本地分支、远程分支、tag
    React 页面间传值的个人总结
    搭建一个属于自己的webpack config(-)
    HTTP 2 新特性
  • 原文地址:https://www.cnblogs.com/mrchenyushen/p/9222402.html
Copyright © 2011-2022 走看看