此模块用于生成和修改常见配置文档,当前模块的名称在 python 3.x 版本中变更为 configparser。
常用方法:
1 import configparser 2 conf = configparser.ConfigParser() # 先生成一个对象. 3 conf.read("conf.ini") # 读取配置文件 4 print(conf.sections()) # 输出配置文件里的配置项,注意,获取不到default.因为每个配置文件里都有一个default.所以这里给省略略 5 list = list(conf["bitbucket.org"].keys()) #其实conf["bitbucket.org"] 就是一个字典.可以取里面的值.可是为什么还有default里的值? 6 7 print(list) 8 ['user', 'serveraliveinterval', 'compression', 'compressionlevel', 'forwardx11'] 9 10 print(conf["bitbucket.org"]["user"]) # 获取"user"key的value 11 a = conf["bitbucket.org"]["user"] 12 print(a) # hg 13 conf["bitbucket.org"]["user"] = "jack" # 修改user的值 14 b = conf["bitbucket.org"].get("user") 15 print(b) #jack 16 17 # 我们获取一下conf["bitbucket.org"]的key 18 for k in conf["bitbucket.org"]: 19 print(k) 20 21 '''user 22 serveraliveinterval 23 compression 24 compressionlevel 25 forwardx11 ''' # 输出了好多key,但是conf["bitucket.org]里只有一个key啊.default的作用就是默认每个节点里都会有default的配置. 26 27 if "ssss" in conf["bitbucket.org"]: # 判断一个子项是否在conf["bitbucket.org"]里面 28 print("in") 29 30 else: 31 print("not in") 32 33 print(conf.options("group1")) # 获取group1下面的key,也就是子项的名字 34 35 # 添加新项 36 conf.add_section("group3") 37 conf["group3"]["user"] = "Nick" 38 conf["group3"]["age"] = "22" # 注意,写入数字的时候必须用引号引起来,不然会认为是一个int类型,无法写入. 39 conf.write(open("conf_test.ini", "w")) 40 41 #删除 42 conf.remove_option("group1","k1") # 删除子项下的值 43 conf.write(open("1111.ini", "w")) 44 45 46 conf.remove_section("group1") # 删除一个子项 47 conf.write(open("2222.ini", "w"))
作业:
[DEFAULT] [client] port = 3306 socket = /data/mysql_3306/mysql.sock [mysqld] explicit_defaults_for_timestamp = true port = 3306 socket = /data/mysql_3306/mysql.sock back_log = 80 basedir = /usr/local/mysql tmpdir = /tmp datadir = /data/mysql_3306 default-time-zone = '+8:00' """ 1.修改时区 default-time-zone = '+8:00' 为 校准的全球时间 +00:00 2.删除 explicit_defaults_for_timestamp = true 3.为DEFAULT增加一条 character-set-server = utf8 """
1 import configparser 2 conf = configparser.ConfigParser() #生成一个conf对象 3 conf.read("conf.ini") # 读取conf.ini的内容 4 conf.remove_option("mysqld", "explicit_defaults_for_timestamp") # 删除 5 #修改 6 conf["mysqld]["default-time-zone"] = "+00:00" 7 8 # 增加 9 conf["DEFAULT"]["character-set-server"] = "utf8"
补充:
for k,v in (conf["mysqld"].items()): # 取所有的k,v print(k,":", v) """输出: port : 3306 socket : /data/mysql_3306/mysql.sock back_log : 80 basedir : /usr/local/mysql tmpdir : /tmp datadir : /data/mysql_3306 default-time-zone : +00:00 character-set-server : utf8 """