您好,登錄后才能下訂單哦!
Python中configparser模塊有哪些用法?相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
configparser模塊的常見用法
configparser模塊用于生成與windows.ini文件類似格式的配置文件,可以包含一節或多節(section),每個節可以有一個或多個參數(鍵=值)
在學習這個模塊之前,先來看一個經常見到的配置文檔:
[DEFAULT] serveraliveinterval = 45 compression = yes compressionlevel = 9 forwardx11 = yes [bitbucket.org] user = admin [topsecret.server.com] port = 1000345 forwardx11 = no
1.創建配置文件
現在來用python中的configparser模塊生成一個與上面相同的配置文檔。
#先導入configparser模塊 import configparser #為其中一個方法定義一個變量 cfp=configparser.ConfigParser() #定義"DEFAULT"節及其子參數 cfp["DEFAULT"]={"ServerAliveInterval":45, "Compression":"yes", "CompressionLevel":9, "ForwardX11":"yes" } #定義“bitbucket.org”節 cfp["bitbucke.ort"]={"USER":"admin"} #定義"topsecret.server.com"節及其參數 cfp["topsecret.server.com"]={"Port":1000345,"ForwardX11":"no"} #把上面定義的節及其參數寫入"cfp.ini"這個文件 with open("cfp.ini","w") as f: cfp.write(f)
運行程序后,生成的配置文件如下:
[DEFAULT] serveraliveinterval = 45 compression = yes compressionlevel = 9 forwardx11 = yes [bitbucket.org] user = admin [topsecret.server.com] port = 1000345 forwardx11 = no
可以看到,跟文章開始處的配置文件格式一模一樣的。
2.讀取配置文件中的變量
目標配置文件就已經生成了,那現在想讀取一個配置文件里的某個選項,該怎么做呢?
import configparser cfp=configparser.ConfigParser() #讀取目標配置文件 cfp.read("cfp.ini") #打印目標配置文件的節 print(cfp.sections())
理論上,讀取配置文件的節,所得是一個列表,運行腳本,得到的字段為:
['bitbucket.org', 'topsecret.server.com']
這是因為第一節是“DEFAULT”字段,這個字段是默認對整個配置文件生效的,
所以"DEFAULT"默認是不會顯示出來。
如果把配置文件中的“DEFAULT”改成“DEFAULTS”,如下:
[DEFAULTS] serveraliveinterval = 45 compression = yes compressionlevel = 9 forwardx11 = yes [bitbucket.org] user = admin [topsecret.server.com] port = 1000345 forwardx11 = no
然后再用上面的代碼來讀取整個配置文件的節,結果如下:
['DEFAULTS', 'bitbucket.org', 'topsecret.server.com'] 打印“bitbucket.ort”節下所有的鍵和值 import configparser cfp=configparser.ConfigParser() #讀取目標配置文件 cfp.read("cfp.ini") print(cfp.items("bitbucket.org"))
從返回結果可以看到,把"DEFAULT"這個節下面的鍵和值也一起返回了,正如前面所說的,“DEFAULT”是默認全局生效的。
[('serveraliveinterval', '45'), ('compression', 'yes'), ('compressionlevel', '9'), ('forwardx11', 'yes'), ('user', 'admin')]
打印“bitbucket.ort”節下所有的鍵。
import configparser cfp=configparser.ConfigParser() #讀取目標配置文件 cfp.read("cfp.ini") print(cfp.options("bitbucket.org"))
結果同上面一樣,"DEFAULT"下面的鍵也被一起返回了。
['user', 'serveraliveinterval', 'compression', 'compressionlevel', 'forwardx11']
3.測試配置文件中的鍵和值
1.測試某個選項是否在配置文件中,可以使用如下方法:
import configparser cfp=configparser.ConfigParser() #讀取目標配置文件 cfp.read("cfp.ini") print("topsecret.server.com" in cfp)
得到的結果為:
True
2.測試某個節下面是否有某個鍵
import configparser cfp=configparser.ConfigParser() #讀取目標配置文件 cfp.read("cfp.ini") print(cfp.get("bitbucket.org","compression"))
返回如下:
yes
4.修改配置文件
1.向配置文件里添加一個鍵值對
代碼如下:
import configparser cfp=configparser.ConfigParser() #打開目標配置文件 cfp.read("cfp.ini") #添加節 cfp.add_section("conf") #為添加的節設置鍵和值 cfp["conf"]["group"]="group01" #把修改寫入配置文件 cfp.write(open("cfp.ini","w"))
添加后的文件如下:
[DEFAULTS] serveraliveinterval = 45 compression = yes compressionlevel = 9 forwardx11 = yes [bitbucket.org] user = admin [topsecret.server.com] port = 1000345 forwardx11 = no [conf] group = group01
可以看到已經增加一個“conf”的節,“conf”節下面增加一個值為“group01”的鍵“group”。
2.刪除配置文件的節及其對就的鍵和值
import configparser cfp=configparser.ConfigParser() #讀取目標配置文件 cfp.read("cfp.ini") #從“topsecret.server.com”節中刪除 cfp.remove_option("topsecret.server.com","forwardx11") cfp.write(open("cfp.ini","w"))
返回結果如下:
[DEFAULT] serveraliveinterval = 45 compression = yes compressionlevel = 9 forwardx11 = yes [bitbucket.org] user = admin [topsecret.server.com] port = 1000345
可以看到"forwardx11"這個鍵值對已經從"topsecret.server.com"這個節中刪除掉了。
3.為某個鍵設置值:
代碼如下:
import configparser cfp=configparser.ConfigParser() #讀取目標配置文件 cfp.read("cfp.ini") #為"topsecret.server.com"節添加一個"k1"鍵,其值為“v1” cfp.set("topsecret.server.com","k1","v1") #為“conf”節添加一個"k100"鍵,其值為"v100" cfp.set("conf","k100","v100") cfp.write(open("cfp.ini","w")) print(cfp.sections())
返回結果為:
[DEFAULT] serveraliveinterval = 45 compression = yes compressionlevel = 9 forwardx11 = yes [bitbucker.ort] user = admin [topsecret.server.com] port = 1000345 forwardx11 = no k1 = v1 [conf] group = group01 k100 = v100
看完上述內容,你們掌握Python中configparser模塊有哪些用法的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。