如果配置文件中没有,Python ConfigParser 使用默认值

Rus*_*mur 4 python default 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
Run Code Online (Sandbox Code Playgroud)

但这感觉很丑。

小智 8

您可以使用此处找到的内置后备参数,如果找不到该选项,则使用该参数:

listen_address = configs.get('ServerConfigs', 'listen_address', fallback='127.0.0.1')
Run Code Online (Sandbox Code Playgroud)