人生苦短_我用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   : 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"文件時,內容爲:python

[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,配置信息,測試數據相似的數據。
相關文章
相關標籤/搜索