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
但这感觉很难看。
您可以使用找到的内置回退参数 here,如果它找不到选项,则会使用该参数:
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
如果配置文件中未定义默认值,使用默认值的最佳方法是什么?例如。在下面的示例中,配置中可能只定义了 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
但这感觉很难看。
您可以使用找到的内置回退参数 here,如果它找不到选项,则会使用该参数:
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