python封裝configparser模塊獲取conf.ini值

  configparser模塊是python自帶的從文件中獲取固定格式參數的模塊,由於是python只帶的,你們用的應該不少,我以爲這個參數模塊比較靈活,添加參數、修改參數、讀取參數等都有對應的參數供用戶使用。由於本人看的都是接近自動化框架方面的,主要用讀取參數,手動操做添加和修改參數也許更方便。python

  configparser模塊讀取的參數應該是不限文檔格式:*.ini、*.conf、*.*,可是內容格式要按照固定格式來進行填寫:框架

  [section]測試

  key = valueurl

 1 #路徑參數
 2 [path]
 3 my_dir = D:\python\workspace\pythontest
 4 log_path = %(my_dir)s\\log\\
 5 img_path = %(my_dir)s\screenshot\
 6 report_path = %(my_dir)s\\report\\
 7 
 8 #郵箱參數
 9 [email]
10 uesr = 1234567890
11 password = 123456
12 smtphost = smtp@163.com
13 from = 123123@163.com
14 to = wadsad@qq.com
15 
16 #日誌參數
17 [log]
18 logtime = 112323
19 
20 #測試參數
21 [main]
22 ip = 109.132.19.7
23 port = 9900
24 url = http://%(ip)s:%(port)s/tes

  封裝後的代碼:spa

 1 #coding:utf-8
 2 import ConfigParser
 3 import os
 4 
 5 class ReadConfig(object):
 6     '''配置參數'''
 7     def __init__(self):
 8         '''
 9         用法:
10         conf = ReadConfig()
11         confinfo = conf.getconf("url")
12         '''
13         #設置conf.ini路徑
14         current_dir = os.path.dirname(__file__)
15         top_one_dir = os.path.dirname(current_dir)
16         file_name = top_one_dir + "\\conf\\conf.ini"
17         #實例化ConfigParser對象
18         self.config = ConfigParser.ConfigParser()
19         self.config.read(file_name)
20 
21     def getconf(self, keyname):
22         num = len( self.config.sections() )
23         i = 0
24         print("num = ",num)
25         #根據sections的數量進行循環查找keyname是否存在
26         while i < num :
27             # 每次循環獲取對應list中的section
28             section = self.config.sections()[i]
29             #若是keyname存在section中,則輸出其參數值
30             if keyname in self.config.options(section):
31                 pass
32                 print("num --> ",i)
33                 print("section --->",section)
34                 print("keyname ---> ", keyname)
35                 self.info = self.config.get(section, keyname)
36                 break
37             else :
38                 i = i + 1
39         else :
40             print("ReadConfig()沒有找到config文件對應的key")
41         return self.info
42 
43 if __name__ == "__main__":
44     conf = ReadConfig()
45     confinfo = conf.getconf("url")
46     print("config --- >",confinfo)

  一開始本想經過section值獲取對應的key以及value,可是試了不少次都不成功。原設想:3d

1     conf = ReadConfig()
2     confinfo = conf.getconf("main").url

  main爲section,url爲key。日誌

  可是這種經過key獲取參數value的方法也能夠實現個人目的。code

1     conf = ReadConfig()
2     confinfo = conf.getconf("url")

  url爲key對象

運行結果:blog

  ini文件存放在pythontest/conf下

  封裝後的py文件存放在pythontest/commlib下

相關文章
相關標籤/搜索