zoukankan      html  css  js  c++  java
  • python模块之configparser

    今天我们来学习一下configparser这个模块,这个模块主要用来操作配置文件的,我们下面先简单的看下这个模块的用法

    一、增加内容

    import configparser
    config = configparser.ConfigParser()
    
    
    config["DEFAULT"] = {"servername":"hci",
                          "ip_address":"127.0.0.1",
                          "port":"3260",
                         "address":"sangfor"}
    
    config["vmware"] = {"servername":"vmware",
                          "ip_address":"127.0.0.2",
                          "port":"3261",
                        "address":"usa"}
    
    config["nutanix"] = {"servername":"nutanix",
                          "ip_address":"127.0.0.3",
                          "port":"3262"}
    
    
    
    config.write(open("config.ini","w"))
    

      

    然后我们查看下配置中的内容,是不是很整洁漂亮

    这里的“DEFAULT”、“vmware”、”nutanix“都是section,而section中的每一项,比如servername为option

    2、如果我们想对配置文件修改,我们该怎么办呢?

    先说下如何增加

    config.read("config.ini")
    config["DEFAULT"] = {"address":"sangfor"}
    
    
    config.write(open("config.ini","w"))
    

     

    得到的效果是,将配置文件中的DEFAULT中的所有的option覆盖,然后替换为代码中的一条,我们可以看下此时的配置文件中的内容

    所以我们如果要增加一条option,应该是按照下面的方法来增加,代码如下

    config["DEFAULT"]["address"] = "sangfor"
    # # 体会下这两种写法的区别
    config["DEFAULT"]["servername"] = "hci"
    config.write(open("config.ini","w"))
    

      

    最终得到的配置文件的内容如下

    同时也可以对某一个option的值进行更改

    config.read("config.ini")
    config["DEFAULT"]["servername"] = "SDDC"
    config.write(open("config.ini","w"))
    

      

    得到的配置截图如下,可以看到servername的值从hci被修改为sddc

     下面我们说下如何查看配置文件

    首先查看配置文件的中的section

    print(config.sections())
    config.read("config.ini")
    print(config.sections())
    

      

    结果如下,这里默认不会输出DEFAULT的section的,DEFAULT是非常特殊的存在,我们在后面会特别说明

    查看option,先看下如何查看DEFAULT中的option

    config.read("config.ini")
    print(config.defaults())
    

      

    结果如下

     在看下如何查看其他section的option

    config.read("config.ini")
    print(config.options("vmware"))
    #查看vmware的section的option的key值
    
    
    print(config.items("vmware"))
    
    #查看vmware的section的option的key和value值
    #
    print(config["nutanix"]["servername"])
    
    #查看nutanix的servername的value的值
    

     

    输出结果如下

     3、在来看下如何删除

    先看如何删除section

    config.read("config.ini")
    config.remove_section("nutanix")
    config.write(open("config.ini","w"))
    

      

    看下配置文件的截图,我们可以看到nutanix的section已经被删除

    然后看下如何删除option

    config.read("config.ini")
    config.remove_option("vmware","address")
    config.write(open("config.ini","w"))
    

      

    在看配置文件的截图,可以看到vmware的address已经被删除

    4、我们可以判断配置文件中是否有某个section、后者某个section中是否有某个option

    先看下如何判断配置文件中是否有某个section

    print(config.has_section("nutanix"))
    print(config.has_section("vmware"))
    

      

    输出结果如下

    在看下如何判断某个section是否有指定的option

    config.read("config.ini")
    print(config.has_option("vmware","port"))
    print(config.has_option("vmware","aaa"))
    print(config.has_option("vmware","address"))
    

      

    结果如下

     我们来看下配置文件中的内容,这里我们需要简单的解释一下,我们可以看到vmware中有port,这里显示为true,没有问题;我们看到vmware没有aaa,这里为false,没有问题;但是我们看到vmware中并没有address,为什么这里显示为true呢?其实这里就是DEFAULT这个section起作用了,如果在非DFAULT中没有某一项,而该项在DEFAULT中有,则默认会用DEFAULT中的option。

    5、还有2个方法,可以更改配置文件,我们在来看下

    首先可以增加secton、为某个section添加option、修改某个option的值

    config.read("config.ini")
    config.add_section("nutanix")
    config.write(open("config.ini","w"))
    
    
    config.set("nutanix","servername","nutanix")
    config.write(open("config.ini","w"))
    
    config.set("vmware","port","8000")
    config.write(open("config.ini","w"))
    

      

    执行的结果如下

  • 相关阅读:
    Jsp+Servlet实现文件上传下载——前台页面开发
    【软考】——原码、反码、补码、移码
    【NCRE】——c# 给PPT判分
    [RN] React Native Image 实现placeholder占位图
    [PHP] Elasticsearch 6.4.2 的安装和使用
    [RN] 使用 Genymotion 导致 ” Genymotion 已连接,但无法访问互联网 “ 的错误
    [RN] React Native 分享弹窗 ShareAlertDialog
    [RN] React Navigation 使用中遇到的显示 问题 汇总
    [RN] React Native Fetch请求设置超时
    [RN] React Native 滚动跳转到指定位置
  • 原文地址:https://www.cnblogs.com/bainianminguo/p/7999053.html
Copyright © 2011-2022 走看看