摘要:解析配置模塊之詳解基本的讀取配置文件直接讀取文件內(nèi)容得到所有的,并以列表的形式返回得到該的所有得到該的所有鍵值對得到中的值,返回為類型得到中的值,返回為類型,還有相應(yīng)的和函數(shù)。是最基礎(chǔ)的文件讀取類,支持對變量的解析。
Python 解析配置模塊之ConfigParser詳解 1.基本的讀取配置文件
-read(filename) 直接讀取ini文件內(nèi)容
-sections() 得到所有的section,并以列表的形式返回
-options(section) 得到該section的所有option
-items(section) 得到該section的所有鍵值對
-get(section,option) 得到section中option的值,返回為string類型
-getint(section,option) 得到section中option的值,返回為int類型,還有相應(yīng)的getboolean()和getfloat() 函數(shù)。
2.基本的寫入配置文件-add_section(section) 添加一個新的section
-set( section, option, value) 對section中的option進行設(shè)置,需要調(diào)用write將內(nèi)容寫入配置文件。
3.基本例子test.conf
[a] a_key1 = 20 a_key2 = 10 [b] b_key1 = 121 b_key2 = b_value2 b_key3 = $r b_key4 = 127.0.0.1
ConfigParser_example.py
cf = ConfigParser.ConfigParser() cf.read("test.conf") # 讀取配置文件內(nèi)容 secs = cf.sections() # 對內(nèi)容進行劃分,得到所有的章節(jié)名 print "sections:", secs # 以列表形式打印章節(jié)名 opts = cf.options("a") print "options:", opts # 以列表形式打印a章節(jié)里面的Key kvs = cf.items("a") print "sec_a:", kvs # 以列表形式打印a章節(jié)的(key, value) str_val = cf.get("a", "a_key1") # 返回a章節(jié)里面key為a_key1的值,返回為string類型 int_val = cf.getint("a", "a_key2") # 返回_a章節(jié)里面key為a_key2的值,返回為int類型 print "value for a"s a_key1:", str_val print "value for a"s a_key2:", int_val cf.set("b", "b_key3", "new-$r") # 章節(jié)a里面添加一個key為b_key3,值為new-$r,如果key存在就更新key的值 cf.set("b", "b_newkey", "new-value") # 章節(jié)b里面添加一個key為b_newkey,值為new-value,key存在就更新key的值 cf.add_section("a_new_section") # 新建一個章節(jié)a_new_section cf.set("a_new_section", "new_key", "new_value") # 章節(jié)a_new_section里面新建一個key為new_key,值為new_value cf.write(open("test.conf", "w")) # 把修改寫入到文件test.conf中
終端輸出:
sections: ["a", "b"] options: ["a_key1", "a_key2"] sec_a: [("a_key1", "20"), ("a_key2", "10")] value for a"s a_key1: 20 value for a"s a_key2: 10
更新后的test.conf
[a] a_key1 = 20 a_key2 = 10 [b] b_key1 = 121 b_key2 = b_value2 b_key3 = new-$r b_key4 = 127.0.0.1 b_newkey = new-value [a_new_section] new_key = new_value4.Python的ConfigParser Module中定義了3個類對INI文件進行操作。
分別是RawConfigParser、ConfigParser、SafeConfigParser。RawCnfigParser是最基礎(chǔ)的INI文件讀取類,ConfigParser、SafeConfigParser支持對%(value)s變量的解析。
設(shè)定配置文件test2.conf
[portal] url = http://%(host)s:%(port)s/Portal host = localhost port = 8080
使用RawConfigParser:
import ConfigParser cf2 = ConfigParser.RawConfigParser() print "use RawConfigParser() read" cf2.read("test2.conf") # 讀取配置文件內(nèi)容 print cf2.get("portal", "url") # 獲得章節(jié)portal中key為url的值 print "use RawConfigParser() write" cf2.set("portal", "url12", "%(host)s:%(port)s") # 章節(jié)portal中添加一個key為url12,值為%(host)s:%(port)s print cf2.get("portal", "url12") # 獲得章節(jié)portal中key為url12的內(nèi)容
終端輸出:
use RawConfigParser() read http://%(host)s:%(port)s/Portal use RawConfigParser() write %(host)s:%(port)s
改用ConfigParser:
import ConfigParser cf3 = ConfigParser.ConfigParser() print "use ConfigParser() read" cf3.read("test2.conf") print cf3.get("portal", "url") print "use ConfigParser() write" cf3.set("portal", "url12", "%(host)s:%(port)s") print cf3.get("portal", "url12")
終端輸出:
use ConfigParser() read http://localhost:8080/Portal use ConfigParser() write localhost:8080
改用SafeConfigParser:
import ConfigParser cf4 = ConfigParser.SafeConfigParser() print "use SafeConfigParser() read" cf4.read("test2.conf") print cf4.get("portal", "url") print "use SateConfigParser() write" cf4.set("portal", "url2", "%(host)s:%(port)s") print cf4.get("portal", "url2")
終端輸出(效果同ConfigParser):
use SafeConfigParser() read http://localhost:8080/Portal use SateConfigParser() write localhost:8080
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/41612.html
摘要:由于這種需求非常普遍,配置解析器提供了一系列更簡便的方法來處理整數(shù)浮點數(shù)及布爾值。注意點方法對大小寫不敏感,能識別和為對應(yīng)的布爾值后備值和字典一樣,可以使用的方法提供后備值需要注意的是,默認值的優(yōu)先級高于后備值。 快速開始 # demo.ini [DEFAULT] ServerAliveInterval = 45 Compression = yes CompressionLevel ...
摘要:的三種數(shù)據(jù)類型字典列表元組,分別用花括號中括號小括號表示。約等于上句,可能是因為自定義變量名與內(nèi)部函數(shù)或變量同名了。下,默認路徑一般為。的日志模塊中計時器定時器計劃任務(wù),。對象的問題怎樣忽略警告不打印煩人的警告打印到終端同時記錄到文件。 Python Enhancement Proposal。(PEP,Python增強建議書) Python之禪(import this) Pytho...
摘要:可能沒有用戶輸出的消息創(chuàng)建一個,用于寫入日志文件再創(chuàng)建一個,用于輸出到控制臺對象可以添加多個和對象序列化模塊什么叫序列化將原本的字典列表等內(nèi)容轉(zhuǎn)換成一個字符串的過程就叫做序列化。 hashlib模塊 1.Python的hashlib提供了常見的摘要算法,如MD5,SHA1等等。什么是摘要算法呢?摘要算法又稱哈希算法、散列算法。它通過一個函數(shù),把任意長度的數(shù)據(jù)轉(zhuǎn)換為一個長度固定的數(shù)據(jù)串(...
摘要:大家應(yīng)該接觸過格式的配置文件。特別是后續(xù)做自動化的測試,需要拎出一部分配置信息,進行管理。二讀取文件自帶有讀取配置文件的模塊,配置文件不區(qū)分大小寫。讀取文件內(nèi)容得到所有的,并以列表的形式返回。 大家應(yīng)該接觸過.ini格式的配置文件。配置文件就是把一些配置相關(guān)信息提取出去來進行單獨管理,如果以后有變動只需改配置文件,無需修改代碼。特別是后續(xù)做自動化的測試,需要拎出一部分配置信息,進行管...
關(guān)于Python,相比大家都不會陌生吧,那么,其中的一些配置文件是什么呢?有沒有可能給大家去進行做一個匯總,匯總的內(nèi)容還是比較的多的,包含寫法等一些相關(guān)的知識,具體的一些相關(guān)匯總,下面給大家詳細解答下?! ∏把浴 ≡谶@篇文章里所提到的環(huán)境變量種類其多元性由上至下到另一個先后提升:ini為何要寫環(huán)境變量 在研發(fā)流程中,很多人都會使用一些固定不動主要參數(shù)或者整型變量。對于這類相對固定不動且經(jīng)常使...
閱讀 1669·2021-11-19 09:40
閱讀 2925·2021-09-24 10:27
閱讀 3215·2021-09-02 15:15
閱讀 1876·2019-08-30 15:54
閱讀 1202·2019-08-30 15:54
閱讀 1369·2019-08-30 13:12
閱讀 626·2019-08-28 18:05
閱讀 2794·2019-08-27 10:53