2014-02-13 51 views

回答

20

你可以使用它就像一個文件的緩衝區:

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') 
+0

以及在何處使用緩衝區? ConfigParser.Read()除文件名外。 – Lucas

+1

@Lucas,將類文件對象提供給'configparser.readfp()' – iruvar

+1

['cStringIO' objects](http://docs.python.org/2/library/stringio.html#module-cStringIO) ['buffer's](http://docs.python.org/2/library/functions.html#buffer)。 _Strings_是緩衝區,但在需要'文件'對象的地方不能使用緩衝區; 'cStringIO' _wraps_''buffer',以使其表現得像一個'file'。另外,你的例子並沒有演示'cStringIO'的行爲如何像一個文件; 'getvalue'是特定於'cStringIO'實例的方法,但文件沒有它。 – lanzz

14

問題被標記爲蟒蛇-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')) 
+0

還有另外1個理由我討厭使用Python 2.7(感謝RHEL 7) –

0

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.') 
相關問題