第一,咱們先開始安裝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,配置信息,測試數據相似的數據。