• configparser模块——配置文档


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

    预制配置文件:conf.ini

    [DEFAULT]
    ServerAliveInterval = 45
    Compression = yes
    CompressionLevel = 9
    ForwardX11 = yes
    
    [bitbucket.org]
    User = hg
    MaxUsers = 100
    
    [topsercret.server.com]
    Port = 50022
    ForwardX11 = no
    解析配置文件
    >>> import configparser
    >>> conf = configparser.ConfigParser()  # 准备处理文件
    >>> conf.read('conf_ini')
    ['conf_ini']
    >>> print(conf.sections())
    ['bitbucket.org', 'topsercret.server.com']
    >>> print(conf.default_section)
    DEFAULT
    >>> 'bitbucket.org' in conf
    True
    >>> conf['bitbucket.org']['User']
    'hg'
    >>> print(list(conf['bitbucket.org'].keys()))
    ['user', 'maxusers', 'serveraliveinterval', 'compression', 'compressionlevel', 'forwardx11']
    >>> for k in conf['topsercret.server.com']:
    ...     print(k)   
    ... 
    port
    forwardx11
    serveraliveinterval
    compression
    compressionlevel

      可以发现,每个节点都会默认包含default值。

    增删改查

    首先准备conf_test.ini文件

    [group1]
    k1 = v1
    k2:v2
    
    [group2]
    k1=v1

    对conf_test_ini文件进行读和添加操作:

    >>> import shutil
    >>> shutil.copyfile('conf_ini', 'conf_test.ini')
    'conf_test.ini'
    # vim conf_test.ini  修改配置文件信息
    
    >>> import ConfigParser
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    ModuleNotFoundError: No module named 'ConfigParser'
    >>> import configparser
    >>> conf = configparser.ConfigParser()
    >>> conf.read('conf_test.ini')
    ['conf_test.ini']
    print(dir(conf))
    ['BOOLEAN_STATES', 'NONSPACECRE', 'OPTCRE', 'OPTCRE_NV', 'SECTCRE', '_DEFAULT_INTERPOLATION',...'set', 'setdefault', 'update', 'values', 'write']
    >>> print(conf.options('group1'))
    ['k1', 'k2']
    >>> print(conf['group1']['k2'])
    v2
    >>> conf.add_section('group3')
    >>> conf['group3']['name'] = 'hqs'
    >>> conf['group3']['age'] = '22'   # 不能使用数字
    >>> conf.write(open('conf_test.ini', 'w'))  # 写入新文件
    [group1]
    k1 = v1
    k2 = v2
    
    [group2]
    k1 = v1
    
    [group3]
    name = hqs
    age = 22

    对conf_test_ini文件进行删操作

    >>> import configparser
    >>> conf = configparser.ConfigParser()
    >>> conf.read('conf_test.ini')
    ['conf_test.ini']
    >>> conf.remove_option('group1', 'k2')   # 删除某一项
    True
    >>> conf.write(open('conf_test.ini', 'w'))
    
    [group1]
    k1 = v1
    
    [group2]
    k1 = v1
    
    [group3]
    name = hqs
    age = 22
    >>> import configparser
    >>> conf = configparser.ConfigParser()
    >>> conf.read('conf_test.ini')
    ['conf_test.ini']
    >>> conf.remove_section('group3')    # 删除某一整个章节
    True
    >>> conf.write(open('conf_test.ini', 'w'))
    >>> ^D
    MacBook-Pro:Desktop hqs$ cat conf_test.ini 
    [group1]
    k1 = v1
    
    [group2]
    k1 = v1
  • 相关阅读:
    运维常用python库&模块
    find&正则表达式
    博客园背景粒子连线代码
    xshell几款绝佳配色方案
    解决ssh连接超时(ssh timeout)的方法
    Java-计划存储
    @Repository、@Service、@Controller 和 @Component
    帮助对@Repository注解的理解
    Struts 2学习笔记——拦截器相关
    JAVA UUID 生成
  • 原文地址:https://www.cnblogs.com/xiugeng/p/8720187.html
Copyright © 2020-2023  润新知