首页 > 解决方案 > 如果不在配置文件中,Python ConfigParser 使用默认值

问题描述

如果未在配置文件中定义默认值,那么使用默认值的最佳方法是什么?例如在下面的示例中,可能仅listen_address在配置中定义,并且listen_port不存在。

我正在尝试这样的事情:

import ConfigParser
from os.path import isfile

if __name__ == "__main__":

    # Set default values
    listen_address = '127.0.0.1'
    listen_port = 8000

    # Check for configurations from file and override defaults
    configFile = './configuration.ini'
    if isfile(configFile):
        configs = ConfigParser.ConfigParser()
        configs.read(configFile)
        try:
            listen_address = configs.get('ServerConfigs', 'listen_address')
        except:
            pass
        try:
            listen_port = configs.get('ServerConfigs', 'listen_port')
        except:
            pass

但这感觉很丑。

标签: pythondefaultconfigparser

解决方案


如果找不到选项,您可以使用此处找到的内置回退参数:

listen_address = configs.get('ServerConfigs', 'listen_address', fallback='127.0.0.1')

推荐阅读