1. 程式人生 > >python封裝configparser模塊獲取conf.ini值(優化版)

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

att 模塊 沒有 自動化測試 .com for getconf dict import

  昨天晚上封裝了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值(優化版)