該模塊定義了ConfigParser類,該類實現了基本的配置文件的解析,配置文件提供了相似與
WINDOWS下的INI文件結構。你可使用該類編寫最終用戶很容易自定義的Python程序。 警告:該庫不包括值類型前綴,該前綴應用與INI語法的擴展版本—Windows Registry中。 例如: [My Section] foodir: %(dir)s/whatever dir=frob 將會解析「%(dir)s」爲「dir」的值(這裏是「frob」)。該模塊包含因此須要的擴展。 默認值能夠經過他們做爲字典傳遞給ConfigParser構造器來知道,另外還會默認傳遞給get()方法,它會覆蓋其餘因此方法。 Class RawConfigParser([defaults]) 基本配置類,當傳遞defaults時,會初始化到內置字典中。該類不支持智能修復,2.3版本新特徵。 Class ConfigParser([defaults]) 繼承之RawConfigParser類,實現了智能特性,爲get(),items()方法添加了可選參數。Defaults中的值必須能填補「%()s」。注意__name__是內置的default;該值是section的名稱,它會被defaults提供的任何值所覆蓋。 因此的用於填補的option名稱都會經過optionxform()方法傳遞,就像其餘任何option名稱同樣。例如,使用optionxform()的默認實現(將option名稱轉化成小寫),「foo %(bar)s」和「foo %(BAR)s」的值相等。 Class SafeConfigParser([defaults]) 繼承至ConfigParser,實現了更多智能特徵,實現更有可預見性,新的應用更偏好這個版本,若是他們不須要對python老版本的兼容性,2.3版本。 Exception NoSectionError 當沒有發現給定section時拋出。 Exception DuplicateSectionError 若是add_section()方法被調用時,提供的section參數的值已經存在時拋出。 Exception NoOptionError 指定option不存在時拋出。 Exception InterpolationError 執行字符串填補時拋出的異常的基類。 Exception InterpolationDepthError 當填補字符串由於迭代次數超過了MAX_INTERPOLATION_DEPTH值時拋出的異常,InterpolationError的子類。 Exception InterpolationMissingOptionError 當option引用的值不存在時拋出,該異常爲InterpolationError的子類,2.3版本新加。 Exeption InterpolationSyntaxError 當原文件格式沒有遵照規定的語法時拋出的異常,繼承至InterpolationError,2.3版本。 Exception MissingSectionHeaderError 嘗試解析沒有section頭的文件時拋出。 Exception ParsingError 解析文件時發生錯誤。 MAX_INTERPOLATION_DEPTH get()方法當raw參數爲false時,遞歸的對大深度。只適用與ConfigParser類。 RawConfigParser對象 RawConfigParser實例的方法: defaults() 返回所有示例中因此defaults。 sections() 返回有效的section列表,DEFAULT不包含在列表中。 add_section(section) 爲實例添加一個section,若是給定的section名已經存在,將拋出DuplicateSectionError異常。 has_section(section) 判斷給定的section名在配置文件中是否存在,DEFAULT section不包括。 options(section) 返回給定的section下的全部可用option的列表。 has_option(section, option) 若是section存在,幷包含給定的option,返回true,放在返回false, 1.6版本新增。 read(filenames) 嘗試解析文件列表,若是解析成功返回文件列表。若是filenames是string或Unicode string,將會按單個文件來解析。若是在filenames中的文件不能打開,該文件將被忽略。這樣設計的目的是,讓你能指定本地有多是配置文件的列表(例如,當前文件夾,用戶的根目錄,及一些全系統目錄),因此在列表中存在的配置文件都會被讀取。若是文件都不存在,那麼ConfigParser實例會包含空數據集。一個須要從配置文件讀取初始化數據的應用程序,應該使用readfp()方法來加載所須要的文件,以後可使用read()方法來獲取任何可能的文件: import ConfigParser, os config = ConfigParser.ConfigParser() config.readfp(open('defaults.cfg')) config.read(['site.cfg', os.path.expanduser('~/.myapp.cfg')]) 2.4版本以後,返回成功解析的文件列表。 readfp(fp[, filename]) 從文件或fp(值使用該對象的readline()方法)中的似文件類讀取並解析配置數據,若是filename被省略,fp有一個name屬性,該屬性用於獲取filename;默認是「<???>」。 get(section, option) 獲取section下option的值。 getint(section, option) 強制指定section下的option的值,做爲Int類型返回的方便方法。 getfloat(section, option) 強制section下的option值,做爲float類型返回的方法方法。 getboolean(section, option) 強制section下的option值,做爲布爾類型返回的方法方法。注意可接受的option的true值有「1」,「yes」,「true」及「on」,可接受的false值有「0」,「no」,「false」,「off」。字符串值不檢測大小寫,其餘值會拋出ValueError異常。 itmes(section) 返回給定section下的因此option的(name, value)對列表。 set(section, option, value) 若是給定的setion存在,爲option設定給定的值;不然拋出NoSectionError異常。當可能使用RawConfigParser(或者ConfigParser的參數raw爲true)來在內部存儲非字符串值,因此功能(包括填補和輸出到文件)只能使用字符串值來歸檔。1.6版本新增。 write(fileobject) 將配置表示寫入指定文件類,該表示之後能夠經過調用read()來解析,1.6版本新增。 remove_option(section, option) 從指定section中刪除指定option,若是section不存在,拋出NoSectionError異常;若是option存在,則刪除,並返回True;不然返回false。1.6版本新增。 remove_section(section) 從配置文件中刪除指定的section,若是section確實存在,返回true,不然返回false。 optionxform(option) 將輸入文件中,或客戶端代碼傳遞的option名轉化成內部結構使用的形式。默認實現返回option的小寫形式;子類可能重寫該方法或客戶端代碼可能將該方法做爲實例的屬性,以此來影響它的行爲。將此用於str(),例如,會使option名稱大小寫敏感。 ConfigParser對象 ConfigParser類擴展了RawConfigParser的一些接口方法,添加了一些可選參數。 get(section, option [, raw[, vars]]) 獲取給定section下的option的值,因此「%」佔位符在返回值中被填補,基於構造時傳遞的默認值,就像option,vars也被提供,除非raw參數爲true。 items(section, [, raw[, vars]]) 返回給定section下的因此option的(name, value)對列表。可選參數同get方法,2.3版本新增。 SafeConfigParser對象 SafeConfigParser類實現了ConfigParser相同的接口,新增以下方法: set(section, option, value) 若是給定的section存在,給option賦值;不然拋出NoSectionError異常。Value值必須是字符串(str或unicode);若是不是,拋出TypeError異常,2.4版本新增。