python封装configparser模块获取conf.ini值(优化版)

python

  昨天晚上封装了configparser模块,是根据keyname获取的value。python封装configparser模块获取conf.ini值

  我原本是想通过config.ini文件中的section和keyname获取value的,前两天怎么都调试不通过。今天百度了一下,有人通过字典的方式把我的和这个想法实现了,我把这个例子修改了一下,代码如下,并通过测试,以后可以用在自动化测试框架中:

 1 #coding:utf-8

2 import os

3 import ConfigParser

4

5 class Dictionary(dict):

6 '''

7 把config.ini中的参数添加值dict

8 '''

9 def __getattr__(self, keyname):

10 #如果key值不存在则返回默认值"not find config keyname"

11 return self.get(keyname, "config.ini中没有找到对应的keyname")

12

13 class Config(object):

14 '''

15 ConfigParser二次封装,在字典中获取value

16 '''

17 def __init__(self):

18 # 设置conf.ini路径

19 current_dir = os.path.dirname(__file__)

20 top_one_dir = os.path.dirname(current_dir)

21 file_name = top_one_dir + "\\conf\\conf.ini"

22 # 实例化ConfigParser对象

23 self.config = ConfigParser.ConfigParser()

24 self.config.read(file_name)

25 #根据section把key、value写入字典

26 for section in self.config.sections():

27 setattr(self, section, Dictionary())

28 for keyname, value in self.config.items(section):

29 setattr(getattr(self, section), keyname, value)

30

31 def getconf(self, section):

32 '''

33 用法:

34 conf = Config()

35 info = conf.getconf("main").url

36 '''

37 if section in self.config.sections():

38 pass

39 else:

40 print("config.ini 找不到该 section")

41 return getattr(self, section)

42

43 if __name__ == "__main__":

44 conf = Config()

45 info = conf.getconf("main").url

46 print info

运行结果:

 conf.ini文件

以上是 python封装configparser模块获取conf.ini值(优化版) 的全部内容, 来源链接: utcz.com/z/387588.html

回到顶部