如果您需要以简单的方式从属性文件中的某个部分读取所有值:
您的config.cfg 文件布局:
[SECTION_NAME]
key1 = value1
key2 = value2
你的代码:
import configparser
config = configparser.RawConfigParser()
config.read('path_to_config.cfg file')
details_dict = dict(config.items('SECTION_NAME'))
这将为您提供一个字典,其中的键与配置文件中的键及其对应的值相同。
details_dict 是:
{'key1':'value1', 'key2':'value2'}
现在获取 key1 的值:
details_dict['key1']
把它全部放在一个只从配置文件中读取部分的方法中(在程序运行期间第一次调用该方法)。
def get_config_dict():
if not hasattr(get_config_dict, 'config_dict'):
get_config_dict.config_dict = dict(config.items('SECTION_NAME'))
return get_config_dict.config_dict
现在调用上述函数并获取所需键的值:
config_details = get_config_dict()
key_1_value = config_details['key1']
通用多部分方法:
[SECTION_NAME_1]
key1 = value1
key2 = value2
[SECTION_NAME_2]
key1 = value1
key2 = value2
扩展上述方法,自动逐段读取,然后按段名后键名访问。
def get_config_section():
if not hasattr(get_config_section, 'section_dict'):
get_config_section.section_dict = collections.defaultdict()
for section in config.sections():
get_config_section.section_dict[section] = dict(config.items(section))
return get_config_section.section_dict
访问:
config_dict = get_config_section()
port = config_dict['DB']['port']
(这里 'DB' 是配置文件中的部分名称
'port' 是“DB”部分下的一个键。)