人生苦短_我用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,\n'key':'5a65de1ce7394ba6afe185cf5873415c'}", 'successed'],
['test_case_002', 'success', 'post', 'http://v.juhe.cn/laohuangli/d', "{'data':2018-09-12,\n'key':'5a65de1ce7394ba6afe185cf5873415c'}", 'successed'],
['test_case_003', 'key_error', 'post', 'http://v.juhe.cn/laohuangli/d', "{'data':2018-09-12,\n'key':'5a65de1ce7394ba6afe185cdsa3416c'}", '错误的请求KEY!!'],
['test_case_004', 'data_null', 'post', 'http://v.juhe.cn/laohuangli/d', "{'data':'',\n'key':'5a65de1ce7394ba6afe185cf5873417c'}", '错误的请求KEY!!'],
['test_case_005', 'key_null', 'post', 'http://v.juhe.cn/laohuangli/d', "{'data':2018-09-12,\n'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   : [email protected]
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   : [email protected]

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,配置信息,测试数据类似的数据。

猜你喜欢

转载自www.cnblogs.com/mrchenyushen/p/9222402.html