zoukankan      html  css  js  c++  java
  • 自动化框架——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”)才能正常打印汉子哟!
    复制代码
  • 相关阅读:
    设置VS2017背景图片
    NuGet的简单使用
    C#6.0,C#7.0新特性
    openFileDialog的Filter属性设置
    C# 获取当前路径7种方法
    正则表达式总结
    IDEA设置switch/case代码块自动补齐
    CentOS7使用yum安装RabbitMQ
    vue react 路由history模式刷新404问题解决方案
    @Component, @Repository, @Service的区别
  • 原文地址:https://www.cnblogs.com/xiaobaibailongma/p/12623874.html
Copyright © 2011-2022 走看看