• configparser模块


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

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

    [DEFAULT] 是每个section共有的
     1 [DEFAULT]
     2 serveraliveinterval = 45
     3 compression = yes
     4 compressionlevel = 9
     5 forwardx11 = yes
     6 
     7 [bitbucket.org]
     8 user = hg
     9 maxusers = 110
    10 
    11 [topsecret.server.com]
    12 port = 50022
    13 forwardx11 = no
    14 
    15 [group1]
    16 name = lemi
    17 age = 21
    18 
    19 [group2]
    20 name = kevin

    解析配置文件

    >>> import configparser # 导入模块
    >>> config = configparser.ConfigParser()  #实例化(生成对象)
    >>> config.sections()  #调用sections方法
    []
    >>> config.read('example.ini')  # 读配置文件(注意文件路径)
    ['example.ini']
    >>> config.sections() #调用sections方法(默认不会读取default)
    ['bitbucket.org', 'topsecret.server.com']
    >>> 'bitbucket.org' in config #判断元素是否在sections列表内
    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) # for循环 bitbucket.org 字典的key
    ...
    user
    compressionlevel
    serveraliveinterval
    compression
    forwardx11

    增删改查语法 

    import configparser
    conf = configparser.ConfigParser()
    conf.read("conf.ini",encoding='utf-8')
    for k,v in conf['bitbucket.org'].items():
        print(k,v)
    >>>
    user hg
    maxusers 110
    serveraliveinterval 45
    compression yes
    compressionlevel 9
    forwardx11 yes
    
    print(conf.options('bitbucket.org'))
    >>>['user', 'maxusers', 'serveraliveinterval', 'compression', 'compressionlevel', 'forwardx11']
    
    print(conf['group1']['age'])
    >>>21
    
    print(dir(conf))
    >>>'add_section', 'clear', 'converters', 'default_section', 'defaults', 'get', 'getboolean', 'getfloat', 'getint', 'has_option', 'has_section', 'items', 'keys', 'options', 
    'optionxform', 'pop', 'popitem', 'read', 'read_dict', 'read_file', 'read_string', 'readfp', 'remove_option', 'remove_section', 'sections', 'set', 'setdefault', 'update', 'values', 'write']
    
    # 添加模块,并赋值
    conf.add_section('group2')
    conf['group2']['name'] = 'kevin'
    conf['group2']['age'] = '22'
    conf.write(open('conf.ini','w'))
    
    conf.add_section('group3')
    #赋值,修改
    conf.set('group3','name','fadewalk')
    conf.write(open('conf.ini','w'))
    
    #删除section模块
    conf.remove_section('group3')
    conf.write(open('conf.ini','w'))
    
    #删除选项
    conf.remove_option('group2','age')
    conf.write(open('conf.ini','w'))
    

      

    练习题

    通过configparser模块完成以下功能
    
    文件名my.cnf
    
    [DEFAULT]
    
    [client]
    port = 3306
    socket = /data/mysql_3306/mysql.sock
    
    [mysqld]
    explicit_defaults_for_timestamp = true
    port = 3306
    socket = /data/mysql_3306/mysql.sock
    back_log = 80
    basedir = /usr/local/mysql
    tmpdir = /tmp
    datadir = /data/mysql_3306
    default-time-zone = '+8:00'
    
    修改时区 default
    -time-zone = '+8:00' 为 校准的全球时间 +00:00 删除 explicit_defaults_for_timestamp = true 为DEFAULT增加一条 character-set-server = utf8


    import configparser config = configparser.ConfigParser() config.read('my.conf') config.set('mysqld','default-time-zone','+00:00') config.remove_option('mysqld','explicit_defaults_for_timestamp') config.set('DEFAULT','character-set-server','utf8') config.write(open('my.conf', "w")) print(config['mysqld']['default-time-zone'] )

     

  • 相关阅读:
    ConcurrentHashMap源码分析
    HashMap源码与相关面试题
    字符串学习笔记(三)---- StringBuilder
    字符串学习笔记(二)---- StringBuffer
    Vue一些基本操作技巧
    PHP代码及命名规范
    Js返回顶部的方法
    linux下镜像网站的几种方法
    单例模式示例
    工厂模式和IOC练习
  • 原文地址:https://www.cnblogs.com/wenyule/p/py-configparser.html
Copyright © 2020-2023  润新知