Python - configParser模組學習

來源:互聯網
上載者:User

標籤: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模組學習

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.