最新公告
  • 欢迎您光临网站无忧模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • Python常用模块之configparse

    正文概述    2020-02-25   253

    Python常用模块之configparse

    常用模块 - configparse模块

    一、简介

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

    二、生成配置文件

    #! /usr/bin/env python3
    # -*- coding:utf-8 -*-
    # 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

    相关推荐:《Python视频教程》

    三、解析配置文件

    读取configparser配置文件的实例

    #! /usr/bin/env python3
    # -*- coding:utf-8 -*-
    # 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 -*-
    # 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 -*-
    # 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]

    下载网 » Python常用模块之configparse

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元