簡體   English   中英

Python ConfigParser使用默認值(如果不在配置文件中)

[英]Python ConfigParser use defaults if not in configuration file

如果未在配置文件中定義默認值,使用最佳值的最佳方法是什么? 例如,在下面的示例中,可能僅在配置中定義了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

但這感覺很難看。

您可以使用此處找到的內置后備參數,如果找不到該選項,則可以使用該參數:

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

https://docs.python.org/3/library/configparser.html#fallback-values

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):
        try:
            configs = ConfigParser.ConfigParser()
            configs.read(configFile)
            listen_address = configs.get('ServerConfigs', 'listen_address', fallback=listen_address)
            listen_port = configs.get('ServerConfigs', 'listen_port', fallback=listen_port)
        except configparser.Error:
            # do whatever u want
            pass

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM