python读取配置文件获取所有键值对_python读取配置文件
轉(zhuǎn)載:https://my.oschina.net/u/3041656/blog/793467
配置文件作為一種可讀性很好的格式,非常適用于存儲(chǔ)程序中的配置數(shù)據(jù)。在每個(gè)配置文件中,配置數(shù)據(jù)會(huì)被分組(比如"config"和”cmd“).每個(gè)分組在其中指定對(duì)應(yīng)的各個(gè)變量值,,如下:
#定義congig分組
[congig]
platformName=Android
appPackage=com.remwe
appActivity=com.remove.SplashActivity
#定義cmd分組
[cmd]
viewPhone=adb devices
startServer=adb start-server
stopServer=adb kill-server
#定義log分組
[log]
log_error=true
基本的讀取操作:
1)-read(filename) 直接讀取文件內(nèi)容
2)sections() 得到該section,并以列表的形式返回
3)options(section) 得到該section的所有option
4)-items(section) 得到該section的所有鍵值對(duì)
5)-get(section,option) 得到section中option的值,返回為string類型
6)-getint(section,option) 得到section中option的值,返回為int類型,還有相應(yīng)的getboolean()和getfloat()函數(shù)
對(duì)配置文件進(jìn)行操作前。我們需要進(jìn)行以下兩個(gè)操作:
1、實(shí)例化ConfigParser對(duì)象
#實(shí)例化configParser對(duì)象
cf=config.ConfigParser()
2、讀取配置文件
#讀取config.ini文件
cf.read(config.ini)
然后進(jìn)行配置文件的讀取操作
以get為例,實(shí)例代碼如下:
#定義方法,獲取config分組下指定name的值
def getConfigVValue(self,name):
value=self.cf.get("config",name)
return(value)
#定義方法,獲取cmd分組下指定name的值
def getCmdValue(self,name):
value=self.cf.get("cmd",name)
return(value)
通過(guò)get(section,option)方法,可以獲取指定分組下指定名稱的值,其他方法類似,可參照著嘗試
基本寫入操作:
1)-write(fp)將config對(duì)象寫入至某個(gè).ini格式的文件
2)-add_section(section)添加一個(gè)新的section
3)-set(section,option,value) 對(duì)section中的option進(jìn)行配置,需要調(diào)用write將內(nèi)容寫入配置文件
4)-remove_section(section)刪除某個(gè)section
5)-remove_option(section,option) 刪除某個(gè)section下的option
以set(section,option,value)為例,示例代碼:
#定義方法,修改config分組下指定name的值value
def setConfigValue(self,name,value):
cfg=self.set("config",name,value)
fp=open(r'config.ini','w')
cfg.write(fp)
配置文件中的名字是不區(qū)分大小寫的,如下兩個(gè)是等價(jià)的:
#不區(qū)分大小寫,以下兩個(gè)鞥加,都獲取appActivity的值
self.cf.get("config",”appActivity“)
self.cf.get("config","APPACTIVITY")
在解析時(shí),getboolean()方法查找任何可行的值,例如以下幾個(gè)都是等價(jià)的:
#以下卻不知都是等價(jià)的為ture
[log]
log_error=ture
log_error=TURE
log_error=1
log_error=yes
總結(jié)
以上是生活随笔為你收集整理的python读取配置文件获取所有键值对_python读取配置文件的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: ae saber插件_AE激光插件Vid
- 下一篇: python+selenium获取coo