• (十八)configparser模块


    configparser模块一般是用来处理配置文件的,如:

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

    如果想用python生成一个这样的配置文件怎么做?

    把配置文件当做一个类似字典的对象去处理,即处理键值对

    import configparser
    config = configparser.ConfigParser()               #拿到config对象
    
    config["DEFAULT"] = {'ServerAliveInterval': '45',  #第一个[DEFAULT]块,像字典一样去定义;[DEFAULT]块是默认的块,有特殊之处,见后面
                         'Compression': 'yes',
                         'CompressionLevel': '9'}
    
    config['bitbucket.org'] = {}                       #第二个[bitbucket.org]块
    config['bitbucket.org']['User'] = 'hg'
    
    config['topsecret.server.com'] = {'Port':'50022',  #第三个[topsecret.server.com]块
                                        'ForwardX11':'no'}
    
    with open('test.ini', 'w') as configfile:          #自定义写入的文件
        config.write(configfile)

    查看

    import configparser
    config = configparser.ConfigParser()                
    
    config.read('test.ini')                       #读取文件
    
    print(config.sections())   #['bitbucket.org', 'topsecret.server.com']    #sections()就是所有的块,不包括DEFAULT默认块
    
    print('bytebong.com' in config)# False                                   #不存在就是false
    
    print(config['bitbucket.org']['User']) # hg                              #存在,拿到键user对应的值hg
    
    print(config['DEFAULT']['Compression']) #yes                             #存在,拿到键compression对应的值yes                          
    
    for key in config['bitbucket.org']:  #user serveraliveinterval compression compressionlevel    #除了user,还拿到了DEFAULT默认块里的键
        print(key)
    结果:

    ['bitbucket.org', 'topsecret.server.com']
    False
    hg
    yes
    user
    serveraliveinterval
    compression
    compressionlevel

    查看还有三个方法:

    print(config.options('bitbucket.org'))                             #options()拿到键,同样包括默认块
    #['user', 'serveraliveinterval', 'compression', 'compressionlevel']
    print(config.items('bitbucket.org'))                               #items()拿到键值对,同样包括默认块
    #[('serveraliveinterval', '45'), ('compression', 'yes'), ('compressionlevel', '9'), ('user', 'hg')]
    print(config.get('bitbucket.org','compression'))                   #get()拿到一个块中的一个键对应的值
    #yes

    所以DEFAULT块是默认块,其他的每一个块中都包括默认块中的键值对

    增删改

    config.add_section('yuan')                        #新增yuan块
    config.remove_section('topsecret.server.com')   #删除topsecret.server.com块
    config.set('bitbucket.org','user','admin')     #修改bitbucket.org块的user键对应的值为admin
    config.set('bitbucket.org','passwd','123456')  #新增bitbucket.org块的passwd键,值为123456
    config.remove_option('bitbucket.org','user')    #删除bitbucket.org块的user键值对
    config.set('yuan','k1','11111')                  #新增yuan块的k1键,值为11111
    
    config.write(open('test123.ini', "w"))           #最后要写入文件,可以是读取时的文件(即覆盖),也可以是新增的另一个文件

    最后被修改后的test123.ini文件:

    [DEFAULT]
    serveraliveinterval = 45
    compression = yes
    compressionlevel = 9
    
    [bitbucket.org]
    passwd = 123456
    
    [yuan]
    k1 = 11111
  • 相关阅读:
    只有APE文件的情况下自己制作CUE文件的方法转,经过本人验证真实可靠good!20101128终极解决版
    无法加载登录用户界面DLL MyGina.dll 解决
    sql2000_简单入门,以前的笔记
    dell_又一例:raid的变化(断电后,可能没有电池造成)
    MSSQL使用帮助租赁空间后的数据库链接
    PS创建动作并利用批处理命令自动处理多图片转
    office2003修复安装,缺少SKU011.CAB文件_解决
    使用双wan口的企业/校园网解决方案初探
    我机也中病毒MS Driver Management Service(原创)
    win2003开机有问题:Windows 无法查询 {7B849a69220F451EB3FE2CB811AF94AE} 的 DllName 注册表项,它将不会被加载。最有可能的原因是注册错误。
  • 原文地址:https://www.cnblogs.com/xulan0922/p/10306841.html
Copyright © 2020-2023  润新知