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