0-01--python3 优雅地使用 configparser加载配置内容-无默认配置

普通加载

test.cfg文件中内容如下

[mysqld]
user = mysql
port = 3306
  • 加载配置文件中的port变量
import configparser

def load_from_filepath():
    '''
    这个方法最简单异懂
    第1, 判断mysqld这个域在不在
    第2, 判断mysqld这个域下有没有port这个变量
    第3, 加载
    但配置多起来的时候代码很难看,灵活性差
    '''
    filepath = 'configparser/test.cfg'
    mysql_conf = configparser.ConfigParser()
    mysql_conf.read(filepath)
    
    if mysql_conf.has_section('mysqld'):
        if mysql_conf.has_option('mysqld', 'port'):
            port = mysql_conf.getint('mysqld', 'port')

    return port
用try
import configparser
import sys

def try_load_from_filepath():
    '''
    用try包装,稍微好看了点,但和上一个方法半斤八两
    '''
    filepath = 'configparser/test.cfg'
    mysql_conf = configparser.ConfigParser()
    mysql_conf.read(filepath)
    try:
        port = mysql_conf.getint('mysqld', 'port')
    except Exception as err:
        print(str(err))
    
    return port
用items–推荐
def load_with_dict():
    '''
    利用items()遍历,不管有多少变量都一起读过来
    '''
    filepath = 'configparser/test.cfg'
    mysql_conf = configparser.ConfigParser()
    mysql_conf.read(filepath)

    ret = {}

    for section, option_dict in mysql_conf.items():
        ret[section] = {}
        for option, val in option_dict.items():
            ret[section][option] = val
    return ret

这个方法优雅,但缺少了默认值的读取

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值