1. 程式人生 > >Python - configParser模塊學習

Python - configParser模塊學習

增加 解析 utf-8 country 節點 一起 get col 配置

configParser 模塊用於操作配置文件

註:Parser漢譯為“解析”之意。

配置文件的格式與windows ini文件類似,可以包含一個或多個節(section),每個節可以有多個參數(鍵=值)。

為了更好的理解本文,我們先了解一下配置文件的組成及命名:配置文件(INI文件)由章節(section [sectionName] )、鍵、值組成(key=value or key:Value)。

# 新建一個config 文件 testconfig.ini

[DATABASE]
host = 50.23.190.57
username : TestYang
password 
= TestYang port = 3306 database = TestDB

具體用法見一下代碼,寫的很詳細了。

#-*-coding:utf-8-*-
# Time:2017/10/18 22:30
# Author:YangYangJun

# 首先導入 ConfigParser 模塊

import ConfigParser

# 這裏發現 上面這種大寫與下面的小寫都可以,只是導入的時候是如何寫的,下面實例化的時候就如何寫。

# import configparser

configFile = 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、增加章節section writeConfig.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 = TestYang password = TestYangPassWord age = 18 country = China ‘‘‘

執行後結果如下:

# 新建一個config 文件 testconfig.ini

[DATABASE]
host = 50.23.190.57
username : TestYang
password = TestYang
port = 3306
database = TestDB



[UserInfo]
username = TestYang
password = TestYangPassWord
age = 18
country = 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 value


if __name__ == "__main__":
    getdata = ReadConfig()
    print  getdata.get_UserInfo("username") # TestYang
    print  getdata.get_db("database")  # TestDB

Python - configParser模塊學習