• Python 基础


    此模块用于生成和修改常见配置文档,当前模块的名称在 python 3.x 版本中变更为 configparser。

    来看一个好多软件的常见配置文件格式如下

    [DEFAULT]
    ServerAliveInterval = 45
    Compression = yes
    CompressionLevel = 9
    ForwardX11 = yes
    
    [bitbucket.org]
    User = hg
    
    [topsecret.server.com]
    Port = 50022
    ForwardX11 = no

    创建这样文件

    import configparser
    config = configparser.ConfigParser()  
    config["DEFAULT"] = {           # 所有参数必须是字符串
        "ServerAliveInterval": "45",
        "Compression": "yes",
        "CompressionLevel": "9",
        "ForwardX11": "yes"
    
    
    }
    config["bitbucket.org"] = {}
    bitbucket = config["bitbucket.org"]
    bitbucket["User"] = "hg"
    config["topsecret.server.com"] = {
        "Port": "50022",
        "ForwardX11": "no",
    }
    
    config.write(open("cmz.ini","w"))

    查询,修改,删除

    # 查询
    import configparser
    config = configparser.ConfigParser()
    config.read("cmz.ini")
    print(config.sections()) # 查所有节点
    for item in config.sections():
        print(item)
    
    print(config["bitbucket.org"]["User"])
    for i in config["bitbucket.org"]:  # 查看bitbucket.org下面的所有元素option
        print(i)
    
    print(config.has_section("bitbucket.org")) # 判断是否有bitbucket.org节点
    print(config.has_option("bitbucket.org","forwardx11"))# 判断bitbucket.org节点下是否有forwardx11
    print(config.get("bitbucket.org","user"))
    print(config.items("DEFAULT"))
    # print(config.options("DEFAULT"))
    
    
    
    #
    # 所有修改的值必须是str set的三个参数分别是setion option value

    config.set("DEFAULT","compressionlevel","10")
    config.write(open(
    "cmz.ini","w")) # 在覆盖源文件

    # 删除
    config.remove_option("DEFAULT","compressionlevel") # 删除
    option config.remove_section(
    "bitbucket.org")
    # 删除sention包括sention下面的所有options
    config.write(open(
    "cmz.ini","w"))

    解析配置文件

    >>> import configparser
    >>> config = configparser.ConfigParser()
    >>> config.sections()
    []
    >>> config.read('example.ini')
    ['example.ini']
    >>> config.sections()
    ['bitbucket.org', 'topsecret.server.com']
    >>> 'bitbucket.org' in config
    True
    >>> 'bytebong.com' in config
    False
    >>> config['bitbucket.org']['User']
    'hg'
    >>> config['DEFAULT']['Compression']
    'yes'
    >>> topsecret = config['topsecret.server.com']
    >>> topsecret['ForwardX11']
    'no'
    >>> topsecret['Port']
    '50022'
    >>> for key in config['bitbucket.org']: print(key)
    ...
    user
    compressionlevel
    serveraliveinterval
    compression
    forwardx11
    >>> config['bitbucket.org']['ForwardX11']
    'yes'

    其它增删改查语法

    [group1]
    k1 = v1
    k2:v2
    
    [group2]
    k1 = v1
    
    import ConfigParser
    
    config = ConfigParser.ConfigParser()
    config.read('i.cfg')
    
    # ########## 读 ##########
    #secs = config.sections()
    #print secs
    #options = config.options('group2')
    #print options
    
    #item_list = config.items('group2')
    #print item_list
    
    #val = config.get('group1','key')
    #val = config.getint('group1','key')
    
    # ########## 改写 ##########
    #sec = config.remove_section('group1')
    #config.write(open('i.cfg', "w"))
    
    #sec = config.has_section('wupeiqi')
    #sec = config.add_section('wupeiqi')
    #config.write(open('i.cfg', "w"))
    
    
    #config.set('group2','k1',11111)
    #config.write(open('i.cfg', "w"))
    
    #config.remove_option('group2','age')
    #config.write(open('i.cfg', "w"))
  • 相关阅读:
    QT获取句柄
    java多线程关键字volatile、lock、synchronized
    Java几种常见的设计模式
    将博客搬至CSDN
    0228-0308的笔记
    深入理解es6-Promise对象
    彻底理解正则
    es6学习笔记-class之继承
    es6学习笔记-class之一概念
    arguments对象详解
  • 原文地址:https://www.cnblogs.com/caimengzhi/p/8365589.html
Copyright © 2020-2023  润新知