python封裝configparser模塊獲取conf.ini值(優化版)


  昨天晚上封裝了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文件

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM