python常用模块-配置文档模块(configparser)

                   python常用模块-配置文档模块(configparser)

                                         作者:尹正杰

版权声明:原创作品,谢绝转载!否则将追究法律责任。

 

 

  ConfigParser模块用于生成和修改常见配置文档,当前模块的名称在 python 3.x 版本中变更为 configparser。类似于apache和mysql的配置文件就用这个模块生成的。

 

一.创建配置文件

 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)
 1 [DEFAULT]
 2 serveraliveinterval = 110
 3 compression = YES
 4 compressionlevel = 15
 5 forwardx11 = YES
 6 
 7 [User information]
 8 user = Yinzhengjie
 9 
10 [yinzhengjie.org.cn]
11 port = 3389
12 forwardx11 = no
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"))
 1 [DEFAULT]
 2 serveraliveinterval = 110
 3 compression = YES
 4 compressionlevel = 15
 5 forwardx11 = YES
 6 
 7 [User information]
 8 user = YINZHENGJIE
 9 name = 尹正杰
10 
11 [yinzhengjie.org.cn]
12 port = 3389
13 forwardx11 = no
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”)才能正常打印汉子哟!
1 [DEFAULT]
2 serveraliveinterval = 110
3 compressionlevel = 15
4 forwardx11 = YES
5 
6 [User information]
7 user = YINZHENGJIE
8 name = 尹正杰
cfg.ini配置文件

 

posted @ 2018-03-14 20:59  尹正杰  阅读(717)  评论(0编辑  收藏  举报