zoukankan      html  css  js  c++  java
  • 常用模块

    一、简介

    configparser模块在Python中是用来读取配置文件的,配置文件的格式跟windows下的ini配置文件相似,可以包含一个或多个节点(section),每个节可以有多个参数(键=值)。

    二、生成配置文件

    #! /usr/bin/env python3
    # -*- coding:utf-8 -*-
    
    # Author   : mayi
    # Blog     : http://www.cnblogs.com/mayi0312/
    # Date     : 2019/4/3
    # Name     : test01
    # Software : PyCharm
    # Note     : 用于测试configparser模块的功能
    # 导入模块
    import configparser
    
    config = configparser.ConfigParser()
    """生成configparser配置文件 ,字典的形式"""
    """第一种写法"""
    config["DEFAULT"] = {'ServerAliveInterval': '45',
                         'Compression': 'yes',
                         'CompressionLevel': '9'}
    """第二种写法"""
    config['bitbucket.org'] = {}
    config['bitbucket.org']['User'] = 'hg'
    """第三种写法"""
    config['topsecret.server.com'] = {}
    topsecret = config['topsecret.server.com']
    topsecret['Host Port'] = '50022'  # mutates the parser
    topsecret['ForwardX11'] = 'no'  # same here
    
    config['DEFAULT']['ForwardX11'] = 'yes'
    """写入后缀为.ini的文件"""
    with open('example.ini', 'w') as configfile:
        config.write(configfile)

    运行后,文件“example.ini”中的结果:

    [DEFAULT]
    compression = yes
    compressionlevel = 9
    serveraliveinterval = 45
    forwardx11 = yes
    
    [bitbucket.org]
    user = hg
    
    [topsecret.server.com]
    host port = 50022
    forwardx11 = no

    三、解析配置文件

    读取configparser配置文件的实例

    #! /usr/bin/env python3
    # -*- coding:utf-8 -*-
    
    # Author   : mayi
    # Blog     : http://www.cnblogs.com/mayi0312/
    # Date     : 2019/4/3
    # Name     : test01
    # Software : PyCharm
    # Note     : 用于测试configparser模块的功能
    # 导入模块
    import configparser
    
    config = configparser.ConfigParser()
    # 读取配置文件
    config.read("example.ini")
    
    print("所有节点==>", config.sections())
    
    print("包含实例范围默认值的词典==>", config.defaults())
    
    for item in config["DEFAULT"]:
        print("循环节点topsecret.server.com下所有option==>", item)
    
    print("bitbucket.org节点下所有option的key,包括默认option==>", config.options("bitbucket.org"))
    
    print("输出元组,包括option的key和value", config.items('bitbucket.org'))
    
    print("bitbucket.org下user的值==>", config["bitbucket.org"]["user"]) # 方式一
    
    topsecret = config['bitbucket.org']
    print("bitbucket.org下user的值==>", topsecret["user"]) # 方式二
    
    print("判断bitbucket.org节点是否存在==>", 'bitbucket.org' in config)
    
    print("获取bitbucket.org下user的值==>", config.get("bitbucket.org","user"))
    
    print("获取option值为数字的:host port=", config.getint("topsecret.server.com","host port"))

    运行结果:

    所有节点==> ['bitbucket.org', 'topsecret.server.com']
    包含实例范围默认值的词典==> OrderedDict([('compression', 'yes'), ('compressionlevel', '9'), ('serveraliveinterval', '45'), ('forwardx11', 'yes')])
    循环节点topsecret.server.com下所有option==> compression
    循环节点topsecret.server.com下所有option==> compressionlevel
    循环节点topsecret.server.com下所有option==> serveraliveinterval
    循环节点topsecret.server.com下所有option==> forwardx11
    bitbucket.org节点下所有option的key,包括默认option==> ['user', 'compression', 'compressionlevel', 'serveraliveinterval', 'forwardx11']
    输出元组,包括option的key和value [('compression', 'yes'), ('compressionlevel', '9'), ('serveraliveinterval', '45'), ('forwardx11', 'yes'), ('user', 'hg')]
    bitbucket.org下user的值==> hg
    bitbucket.org下user的值==> hg
    判断bitbucket.org节点是否存在==> True
    获取bitbucket.org下user的值==> hg
    获取option值为数字的:host port= 50022

    删除配置文件section和option的实例(默认分组有参数时无法删除,但可以先删除下面的option,再删分组)

    #! /usr/bin/env python3
    # -*- coding:utf-8 -*-
    
    # Author   : mayi
    # Blog     : http://www.cnblogs.com/mayi0312/
    # Date     : 2019/4/3
    # Name     : test01
    # Software : PyCharm
    # Note     : 用于测试configparser模块的功能
    # 导入模块
    import configparser
    
    config = configparser.ConfigParser()
    # 读取配置文件
    config.read("example.ini")
    
    config.remove_section("bitbucket.org")
    """删除分组"""
    config.remove_option("topsecret.server.com", "host port")
    """删除某组下面的某个值"""
    config.write(open('example.ini', "w"))

    运行后,文件“example.ini”中的结果:

    [DEFAULT]
    compression = yes
    compressionlevel = 9
    serveraliveinterval = 45
    forwardx11 = yes
    
    [topsecret.server.com]
    forwardx11 = no

    修改配置文件

    #! /usr/bin/env python3
    # -*- coding:utf-8 -*-
    
    # Author   : mayi
    # Blog     : http://www.cnblogs.com/mayi0312/
    # Date     : 2019/4/3
    # Name     : test01
    # Software : PyCharm
    # Note     : 用于测试configparser模块的功能
    # 导入模块
    import configparser
    
    config = configparser.ConfigParser()
    # 读取配置文件
    config.read("example.ini")
    
    config.add_section("new_section")
    """新增分组"""
    config.set("DEFAULT", "compressionlevel", "110")
    """设置DEFAULT分组下compressionlevel的值为110"""
    config.write(open('example.ini', "w"))

    运行后,文件“example.ini”中的结果:

    [DEFAULT]
    compression = yes
    compressionlevel = 110
    serveraliveinterval = 45
    forwardx11 = yes
    
    [topsecret.server.com]
    forwardx11 = no
    
    [new_section]
  • 相关阅读:
    nop 配置阿里cdn 联通4g 页面显示不全 查看源代码发现被截断
    HTTP 错误 500.21 模块 IIS Web Core
    nopcommerce4.0 安装步骤
    2017-12-08高级.net 面试小结
    图片上传
    每个部门绩效成绩第二名 sql server 查询 ( 替代 not in )
    Vmware虚拟机与主机连接的三种模式及使用
    PE,VG,PV,LV概念与结构关系
    windows忘记 oracle的用户名和密码
    虚拟机CentOS打开终端设置快捷键
  • 原文地址:https://www.cnblogs.com/mayi0312/p/10965649.html
Copyright © 2011-2022 走看看