zoukankan      html  css  js  c++  java
  • Python模块之: configobj(转)

    原来也有写过一篇文章Python模块之: ConfigParser 用来解析INI文件,但是在使用过程中存在一些问题。比如:
    1,不能区分大小写。
    2,重新写入的ini文件不能保留原有INI文件的注释。
    3,重新写入的ini文件不能保持原有的顺序。
    4,不支持嵌套。
    5,不支持格式校验。
    我本来是想扩展ConfigParser来支持上面的一些缺点的,但是我觉得应该有人有类似的问题并应该有相关的模块满足
    我上面的需求的,于是放G搜索之。得到一个Lib: configobj。下面我将举例说明其常用的几个方法:
    项目地址:http://www.voidspace.org.uk/python/configobj.html
    在介绍之前,还是先各处初始化的test.ini文件:

    1
    2
    3
    4
    5
    6
    7
    8
    [server]
    servername = 192.168.11.1
    serverport = 8000
     
    [client_srv]
    # 这里是注释
    server = localhost
    port = 8000

    A: 解析文件:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    from configobj import ConfigObj
    #
    conf_ini = "./test.ini"
    config = ConfigObj(conf_ini,encoding='UTF8')
    #
    # 读配置文件
    #
    print config['server']
    print config['server']['servername']

    B: 修改配置文件

    1
    2
    3
    4
    5
    6
    from configobj import ConfigObj
    #
    conf_ini = "./test.ini"
    config = ConfigObj(conf_ini,encoding='UTF8')
    config['server']['servername'] = "127.0.0.1"
    config.write()

    C:添加新项:

    1
    2
    3
    4
    5
    6
    7
    from configobj import ConfigObj
    #
    conf_ini = "./test.ini"
    config = ConfigObj(conf_ini,encoding='UTF8')
    config['new_items'] = {}
    config['new_items']['Items1'] = "test items"
    config.write()

    D: 删除项:

    1
    2
    3
    4
    5
    6
    from configobj import ConfigObj
    #
    conf_ini = "./test.ini"
    config = ConfigObj(conf_ini,encoding='UTF8')
    del config['client_srv']['port']
    config.write()

    E: 将配置文件写入到不同的文件:

    1
    2
    3
    4
    5
    6
    7
    from configobj import ConfigObj
    #
    conf_ini = "./test.ini"
    config = ConfigObj(conf_ini,encoding='UTF8')
    del config['client_srv']['port']
    config.filename = "./test1.ini"
    config.write()
  • 相关阅读:
    【Python】python3.6中实现同一行动态输出
    【Python】将python3.6软件的py文件打包成exe程序
    【Java】分布式RPC通信框架Apache Thrift 使用总结
    【Java】加载驱动方法
    【Java】Comparable和Comparator接口的区别
    【Java】接口(interface)VS抽象类
    【Ubuntu】PHP环境安装-phpstudy for linux版
    【Ubuntu】xrdp完美实现Windows远程访问Ubuntu 16.04
    【系统设计】会议室预定系统房间预定系统设计
    jmeter场景设计:业务占比
  • 原文地址:https://www.cnblogs.com/qq78292959/p/3213939.html
Copyright © 2011-2022 走看看