• python常用模块之configparser模块


    python常用模块之configparser

    作用:解析配置文件

    假设在当前目录下有这样一个conf.ini文件

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

    模块的操作

    import configparser
    
    conf = configparser.ConfigParser()  # 创建一个对象
    # print(conf.sections())  # [],因为没有打开文件,所以是空的
    
    conf.read("conf.ini")  # 读取文件内容
    print(conf.sections())  # ['bitbucket.org', 'topsecret.server.com']
    # 那么为什么没有DEFAULT呢?因为在每一个配置文件中都会有一个DEFAULT,这是全局默认配置的东西,打印不出来的,但是可以获取到
    
    print(conf.default_section)  # DEFAULT
    
    # 拿到里面的值
    print(conf['bitbucket.org']['User'])  # hg  此时是知道这个配置文件中的子模块bitbucket.org里有User
    
    # 循环
    for k,v in conf['bitbucket.org'].items():
        print(k,v)
    # user hg
    # serveraliveinterval 45
    # compression yes
    # compressionlevel 9
    # forwardx11 yes
    那么,为啥会把DEFAULT里的打印出来呢?因为这是configparser设置的,会默认出现在每一个节点中
    

    configparser其他的操作

    # 还是以上面的conf.ini为例
    
    import configparser
    conf = configparser.ConfigParser()  # 生成一个对象
    conf.read("conf.ini",encoding='utf-8')  # 读取配置文件内容
    
    # 读
    # print(dir(conf))
    
    print(conf.options("bitbucket.org"))  # 将bitbucket.org区域里的key全部拿出,包括DEFAULT里面的,['user', 'serveraliveinterval', 'compression', 'compressionlevel', 'forwardx11']
    print(conf['bitbucket.org']['User'])  # hg,拿到bitbucket.org里的User这个key的值
    
    # 增加
    conf.add_section("group1")  # 增加name区域
    conf['group1']['age'] = '22'  # 增加group1区域中age这个key的值为22
    conf['group1']['name'] = 'xiao'
    conf.write(open("conf.ini","r+"))  # 写进文件中
    conf.write(open("i.cfg","w"))  # 或者写到一个新文件中
    
    # 删除
    # conf.remove_section('group1')  # 删除整个group1区域
    # conf.write(open('i.cfg','w'))
    
    conf.remove_option('group1','name')  # 只删除group1区域里的name这个key
    conf.write(open('conf.ini','w'))
    
  • 相关阅读:
    修改input标签输入样式
    CSS3的transform 转换
    前端小知识--区分get和post请求
    JS面向对象--你真的理解闭包了吗?
    px,em,rem的区别
    傻瓜式教程--实现登录页面的验证码以及验证(VUE)
    基于RBAC权限管理的后台管理系统
    在VUE中实现打印
    关于三层架构的好文章
    RabbitMQ常用命令、管理界面
  • 原文地址:https://www.cnblogs.com/xiaoyafei/p/9037606.html
Copyright © 2020-2023  润新知