自动化框架——PO设计模式自学——参数化配置——ini配置文件——转载
转载:https://www.cnblogs.com/yinzhengjie/p/8570093.html
ConfigParser模块用于生成和修改常见配置文档,当前模块的名称在 python 3.x 版本中变更为 configparser。类似于apache和mysql的配置文件就用这个模块生成的。
注意:新版本中变更为 configparser
一.创建配置文件
1 #!/usr/bin/env python 2 #_*_coding:utf-8_*_ 3 #@author :yinzhengjie 4 #blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/ 5 #EMAIL:y1053419035@qq.com 6 7 8 """ 9 该模块适用于配置文件的格式与windows ini文件类似,可以包含一个或多个节(section),每个节可以有多个参数(键=值) 10 """ 11 12 import configparser 13 14 cfg = configparser.ConfigParser() #创建一个空字典,即“{}” 15 16 cfg["DEFAULT"] = { 17 "ServerAliveInterval" :110, 18 "Compression":"YES", 19 "CompressionLevel":15, 20 "ForwardX11":"YES", 21 } 22 23 cfg["User information"] = { 24 "USER":"Yinzhengjie", 25 } 26 27 cfg["yinzhengjie.org.cn"] = { 28 "Port":3389, 29 "ForwardX11":"no", 30 } 31 32 with open("cfg.ini","w")as f: 33 cfg.write(f)
cfg.ini配置文件
二.读取配置文件
1 #!/usr/bin/env python 2 #_*_coding:utf-8_*_ 3 #@author :yinzhengjie 4 #blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/ 5 #EMAIL:y1053419035@qq.com 6 7 import configparser 8 9 cfg = configparser.ConfigParser() 10 11 cfg.read("cfg.ini") #读取配置文件 12 13 print(cfg.sections()) #打印配置文件的字段信息,它默认是不打印“DEFAULT”的信息。 14 15 print("yinzhengjie.org.cn" in cfg) #判断cfg是否存在“yinzhengjie.org.cn”这个字段。 16 17 print(cfg["User information"]["user"]) #取"User information"字段的"user"这个key所对应的value。 18 19 print(cfg.items("yinzhengjie.org.cn")) #找到"yinzhengjie.org.cn"下所有的键值对。 20 21 print(cfg.options("yinzhengjie.org.cn")) #同for循环,找到"yinzhengjie.org.cn"下的所有键。 22 # for key in cfg["yinzhengjie.org.cn"]: 23 # print(key) 24 25 print(cfg.get("yinzhengjie.org.cn","compression")) #get方法取深层嵌套的值。 26 27 28 29 30 #以上代码执行结果如下: 31 ['User information', 'yinzhengjie.org.cn'] 32 True 33 Yinzhengjie 34 [('serveraliveinterval', '110'), ('compression', 'YES'), ('compressionlevel', '15'), ('forwardx11', 'no'), ('port', '3389')] 35 ['port', 'forwardx11', 'serveraliveinterval', 'compression', 'compressionlevel'] 36 YES
三.configparser修改和新增的实例
1 #!/usr/bin/env python 2 #_*_coding:utf-8_*_ 3 #@author :yinzhengjie 4 #blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/ 5 #EMAIL:y1053419035@qq.com 6 7 import configparser 8 9 cfg = configparser.ConfigParser() 10 11 cfg.read("cfg.ini",encoding="utf-8") 12 13 cfg.set("User information","Name","尹正杰") 14 cfg.set("User information","user","YINZHENGJIE") 15 16 cfg.write(open("cfg.ini","w",encoding="utf-8"))
cfg.ini配置文件
四.configparser删除的实例
1 #!/usr/bin/env python 2 #_*_coding:utf-8_*_ 3 #@author :yinzhengjie 4 #blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/ 5 #EMAIL:y1053419035@qq.com 6 7 import configparser 8 9 cfg = configparser.ConfigParser() #生成一个实例 10 11 cfg.read("cfg.ini",encoding="utf-8") #将文件内容加载进来。 12 13 cfg.remove_section("yinzhengjie.org.cn") #删除整个section! 14 15 cfg.remove_option("DEFAULT","compression") #删除某个section的一个子项, 16 17 cfg.write(open("cfg.ini","w",encoding="utf-8")) #如果有中文的话需要指定编码格式(“utf-8”)才能正常打印汉子哟!