configparser模块——用于生成和修改常见配置文档

时间:2022-12-05 13:52:14
  • 配置文档格式
  •  [DEFAULT]
    ServerAliveInterval = 45
    Compression = yes
    CompressionLevel = 9
    ForwardX11 = yes [bitbucket.org]
    User = hg

    配置文档文件格式

  • 解析配置文件:查询
  •  #-*- coding:utf-8 -*-
    #解析配置文件
    import configparser
    config = configparser.ConfigParser()
    print(config.sections())#[],此时打印为空,因为还没有读文件呢
    config.read("example.ini")
    print(config.sections())#打印节点['bitbucket.org', 'topsecret.server.com']
    if 'bitbucket.org' in config: #判断该节点是否在配置文件中
    print('true')
    print(config['bitbucket.org']['User'])#hg,查询value值,操作方式和字典一样
    print(config['DEFAULT']['Compression'])#yes,查询value值,操作方式和字典一样
    topsecret = config['topsecret.server.com']
    print(topsecret['ForwardX11'])#no
    print(topsecret['Port'])# for key in config['bitbucket.org']:#用for循环打印,除打印除'bitbucket.org'内的key,也会打印出'default’中的key,
    # 'default'中的内容是默认每个节点模块共享的,这样可以避免重复写
    print(key)#user serveraliveinterval compression compressionlevel forwardx11

    解析配置文件

  • 其他增删改查语法
  •  import configparser
    config = configparser.ConfigParser()
    config.read('example.ini')
    secs = config.sections()#获取节点
    print(secs)#['bitbucket.org', 'topsecret.server.com']
    options = config.options('bitbucket.org')#获取某一节点下的KEY
    print(options)#['user', 'serveraliveinterval', 'compression', 'compressionlevel', 'forwardx11']
    item_list = config.items('bitbucket.org')#获取某一节点下的KEY,value
    print(item_list)#[('serveraliveinterval', '45'), ('compression', 'yes'), ('compressionlevel', '9'), ('forwardx11', 'yes'), ('user', 'hg')]
    val = config.get('bitbucket.org','serveraliveinterval')
    print(val)#45,str格式
    val = config.getint('bitbucket.org','serveraliveinterval')
    print(val)#45,int格式

  • import configparser
    config = configparser.ConfigParser()
    config.read('example.ini')
    #remove section
    # sec = config.remove_section('bitbucket.org')#移除'bitbucket.org'节点
    # print(sec)##True:移除成功,False:移除失败(内容不存在)
    # config.write(open('example.ini','w'))#写
    #Add section
    # sec = config.has_section('group1')#判断该节点是否存在
    # print(sec)#False:不存在,True:存在
    # sec = config.add_section('group1')#添加,如果已经存在,会报错
    # config.write(open('example.ini','w')) #add option
    # config.set('group1','K1','11111')#给group1节点添加内容,如果group1不存在,会报错
    # config.write(open('example.ini','w')) #remove option
    # sec = config.remove_option('group1','K1')#移除option
    # print(sec)#True:移除成功,False:移除失败(内容不存在)
    # config.write(open('example.ini','w'))

    remove,add