configparser模塊用於生成與windows.ini文件相似格式的配置文件,能夠包含一節或多節(section),每一個節能夠有一個或多個參數(鍵=值)python
在學習這個模塊以前,先來看一個常常見到的配置文檔:windows
[DEFAULT] serveraliveinterval = 45 compression = yes compressionlevel = 9 forwardx11 = yes [bitbucket.org] user = admin [topsecret.server.com] port = 1000345 forwardx11 = no
如今來用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
能夠看到,跟文章開始處的配置文件格式如出一轍的。code
目標配置文件就已經生成了,那如今想讀取一個配置文件裏的某個選項,該怎麼作呢?server
import configparser cfp=configparser.ConfigParser() #讀取目標配置文件 cfp.read("cfp.ini") #打印目標配置文件的節 print(cfp.sections())
理論上,讀取配置文件的節,所得是一個列表,運行腳本,獲得的字段爲:rem
['bitbucket.org', 'topsecret.server.com']
這是由於第一節是「DEFAULT」字段,這個字段是默認對整個配置文件生效的,文檔
因此"DEFAULT"默認是不會顯示出來。get
若是把配置文件中的「DEFAULT」改爲「DEFAULTS」,以下:it
[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']
import configparser cfp=configparser.ConfigParser() #讀取目標配置文件 cfp.read("cfp.ini") print("topsecret.server.com" in cfp)
獲得的結果爲:
True
import configparser cfp=configparser.ConfigParser() #讀取目標配置文件 cfp.read("cfp.ini") print(cfp.get("bitbucket.org","compression"))
返回以下:
yes
代碼以下:
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」
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"這個節中刪除掉了。
代碼以下:
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