我正在使用python ConfigParser解析config.ini文件,但是如果我的配置文件中没有特定项目,则会出现错误。我想进行检查,以便如果我尝试获取不在配置文件中的值,则该值应返回None。
下面是我编写的配置解析器类。
from configparser import ConfigParser
class MyConfiguration(object):
def __init__(self, *file_names):
# print(file_names)
parser = ConfigParser()
# parser.optionxform = str
found = parser.read(file_names)
if not found:
raise ValueError('No config file found!')
for section in parser.sections():
# print(section)
# print(parser.items(section))
self.__dict__.update(parser.items(section))
config = MyConfiguration(FILE1, FILE2)
使用配置文件中的任何项,我正在调用config.key
期望:
如果我尝试获取不可用的config.key_unknown
,则应返回None
答案 0 :(得分:0)
您可能应该使用__getattr__
:而不是在字典中设置键:
from configparser import ConfigParser
class MyConfiguration(object):
def __init__(self, *file_names):
# print(file_names)
parser = ConfigParser()
# parser.optionxform = str
found = parser.read(file_names)
if not found:
raise ValueError('No config file found!')
self._parser = parser
def __getattr__(self, key):
for section in self._parser.sections():
if key in section:
return section[key]
return None