如何从字符串或列表中读取配置?

时间:2014-02-13 22:00:39

标签: python python-2.7 configparser

是否可以从字符串或列表中读取ConfigParser的配置? 没有文件系统上的任何临时文件


对此有什么类似的解决方案吗?

4 个答案:

答案 0 :(得分:27)

您可以使用行为类似于文件的缓冲区:

import ConfigParser
import StringIO

s_config = """
[example]
is_real: False
"""
buf = StringIO.StringIO(s_config)
config = ConfigParser.ConfigParser()
config.readfp(buf)
print config.getboolean('example', 'is_real')

答案 1 :(得分:18)

问题被标记为python-2.7,但仅仅是为了完整性:从3.2开始,您可以使用ConfigParser function read_string(),因此您不再需要StringIO方法。

import configparser

s_config = """
[example]
is_real: False
"""
config = configparser.ConfigParser()
config.read_string(s_config)
print(config.getboolean('example', 'is_real'))

答案 2 :(得分:0)

Python自版本3.2起具有read_stringread_dict。它不支持从列表中读取。

该示例显示了从字典中进行阅读。键是部分名称,值是带有应在该部分中显示的键和值的字典。

#!/usr/bin/env python3

import configparser

cfg_data = {
    'mysql': {'host': 'localhost', 'user': 'user7',
              'passwd': 's$cret', 'db': 'ydb'}
}

config = configparser.ConfigParser()
config.read_dict(cfg_data)

host = config['mysql']['host']
user = config['mysql']['user']
passwd = config['mysql']['passwd']
db = config['mysql']['db']

print(f'Host: {host}')
print(f'User: {user}')
print(f'Password: {passwd}')
print(f'Database: {db}')

答案 3 :(得分:-2)

This也可能有用。它向您展示了如何使用配置(CFG文件)读取字符串。 这是我使用从互联网上收集的信息制作的基本配置阅读器:

import configparser as cp
config = cp.ConfigParser()
config.read('config.cfg')
opt1=config.getfloat('Section1', 'option1')
opt2=config.getfloat('Section1', 'option2')
opt3=config.get('Section1', 'option3')
print('Config File Float Importer example made using\n\
http://stackoverflow.com/questions/18700295/standard-way-of-creating-config-file-suitable-for-python-and-java-together\n\
and\n\
https://docs.python.org/2/library/configparser.html\n\
. (Websites accessed 13/8/2016).')
print('option1 from Section1 =', opt1, '\n Option 2 from section 1 is', str(opt2), '\nand option 3 from section 1 is "'+opt3+'".')
input('Press ENTER to exit.')