標籤:inf option span try tab code 命名 host 開啟
configParser 模組用於操作設定檔
註:Parser漢譯為“解析”之意。
設定檔的格式與windows ini檔案類似,可以包含一個或多個節(section),每個節可以有多個參數(鍵=值)。
為了更好的理解本文,我們先瞭解一下設定檔的組成及命名:設定檔(INI檔案)由章節(section [sectionName] )、鍵、值組成(key=value or key:Value)。
# 建立一個config 檔案 testconfig.ini[DATABASE]host = 50.23.190.57username : TestYangpassword = TestYangport = 3306database = TestDB
具體用法見一下代碼,寫的很詳細了。
#-*-coding:utf-8-*-# Time:2017/10/18 22:30# Author:YangYangJun# 首先匯入 ConfigParser 模組import ConfigParser# 這裡發現 上面這種大寫與下面的小寫都可以,只是匯入的時候是如何寫的,下面執行個體化的時候就如何寫。# import configparserconfigFile = ‘testconfig.ini‘# 1、建立ConfigParser 執行個體config = ConfigParser.ConfigParser()# 2、讀取設定檔config.read(configFile)# 3、擷取設定檔的章節序列print config.sections() # [‘DATABASE‘]# 4、擷取設定檔中對應章節所有鍵的序列print config.options(‘DATABASE‘) # [‘host‘, ‘username‘, ‘password‘, ‘port‘, ‘database‘]# 5、擷取設定檔中對應章節 對應鍵的值print config.get(‘DATABASE‘,‘host‘) # 50.23.190.57# 6、擷取設定檔中對應章節的所有索引值對print config.items(‘DATABASE‘) # [(‘host‘, ‘50.23.190.57‘), (‘username‘, ‘TestYang‘), (‘password‘, ‘TestYang‘), (‘port‘, ‘3306‘), (‘database‘, ‘TestDB‘)]# 7、往設定檔中增加章節section# 重新執行個體化一個對象,如果使用上面已經read的對象的話,write的時候會將已經讀的內容再寫一遍。writeConfig = ConfigParser.ConfigParser()# 8、增加章節sectionwriteConfig.add_section("UserInfo")# 9、set 往設定檔中的[UserInfo]節點加入索引值對writeConfig.set("UserInfo",‘username‘,‘TestYang‘)writeConfig.set("UserInfo",‘password‘,‘TestYangPassWord‘)writeConfig.set("UserInfo",‘age‘,‘18‘)writeConfig.set("UserInfo",‘country‘,‘China‘)# 10、已追加的方式開啟已經存在的檔案,如果檔案不存在則建立該檔案writeConfig.write(open(‘testconfig.ini‘,‘a‘))# 上面的寫入代碼等價於下面的代碼‘‘‘f = open(‘testconfig.ini‘,‘a‘)writeConfig.write(f)‘‘‘# 注意 如果 分開先寫 writeConfig.add_section("UserInfo") 然後在單獨執行set 會報如下錯誤# 所以 add_section 和 set 要一起寫,一起執行‘‘‘ raise NoSectionError(section)ConfigParser.NoSectionError: No section: ‘UserInfo‘‘‘‘# 寫入後的結果如下‘‘‘[UserInfo]username = TestYangpassword = TestYangPassWordage = 18country = China‘‘‘
執行後結果如下:
# 建立一個config 檔案 testconfig.ini[DATABASE]host = 50.23.190.57username : TestYangpassword = TestYangport = 3306database = TestDB[UserInfo]username = TestYangpassword = TestYangPassWordage = 18country = China
應用執行個體如下:
# 應用執行個體,可以建立一個py檔案,將使用的方法封裝起來class ReadConfig(): def __init__(self): self.cf = ConfigParser.ConfigParser() self.cf.read(configFile) def get_UserInfo(self, username): value = self.cf.get("UserInfo", username) return value def get_http(self, name): value = self.cf.get("HTTP", name) return value def get_db(self, name): value = self.cf.get("DATABASE", name) return valueif __name__ == "__main__": getdata = ReadConfig() print getdata.get_UserInfo("username") # TestYang print getdata.get_db("database") # TestDB
Python - configParser模組學習