zoukankan      html  css  js  c++  java
  • 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配置文件
  • 相关阅读:
    NC13950 Alliances(LCA)
    NC13884 Paint Box(容斥原理)
    Gym102174B 炼金术(AC自动机)
    CF301D Yaroslav and Divisors(树状数组)
    CF1443D Extreme Subtraction(思维)
    Gym102174L 旅行的意义(期望dp)
    Gym102220F Mini-game Before Contest(博弈论)
    Gym102220D Master of Data Structure (虚树)
    用random.simple来解决从0-99这100个数中随机取10个不重复的数
    一个栈的输入序列为1,2,3,4,5,则下列序列中不可能是栈的输出序列的是()
  • 原文地址:https://www.cnblogs.com/yinzhengjie/p/8570093.html
Copyright © 2011-2022 走看看