昨天晚上封装了configparser模块,是根据keyname获取的value。python封装configparser模块获取conf.ini值
我原本是想通过config.ini文件中的section和keyname获取value的,前两天怎么都调试不通过。今天百度了一下,有人通过字典的方式把我的和这个想法实现了,我把这个例子修改了一下,代码如下,并通过测试,以后可以用在自动化测试框架中:
#coding:utf-8
import os
import ConfigParser class Dictionary(dict):
'''
把config.ini中的参数添加值dict
'''
def __getattr__(self, keyname):
#如果key值不存在则返回默认值"not find config keyname"
return self.get(keyname, "config.ini中没有找到对应的keyname") class Config(object):
'''
ConfigParser二次封装,在字典中获取value
'''
def __init__(self):
# 设置conf.ini路径
current_dir = os.path.dirname(__file__)
top_one_dir = os.path.dirname(current_dir)
file_name = top_one_dir + "\\conf\\conf.ini"
# 实例化ConfigParser对象
self.config = ConfigParser.ConfigParser()
self.config.read(file_name)
#根据section把key、value写入字典
for section in self.config.sections():
setattr(self, section, Dictionary())
for keyname, value in self.config.items(section):
setattr(getattr(self, section), keyname, value) def getconf(self, section):
'''
用法:
conf = Config()
info = conf.getconf("main").url
'''
if section in self.config.sections():
pass
else:
print("config.ini 找不到该 section")
return getattr(self, section) if __name__ == "__main__":
conf = Config()
info = conf.getconf("main").url
print info
运行结果:
conf.ini文件