人生苦短_我用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"文件时,内容为:
[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,配置信息,测试数据类似的数据。
Bug? 不存在的!