ConfigParser

 
0
 
Python
ava
larinva | 26.05.2011, 11:45
Всем привет! как я понял из док-ции ConfigParser при чтении конфиг файла не чувствителен к регистрам,
[XXXX]
xxx = FSDxxx

как получить на выходе результат FSDxxx
заранее сп-бо!
Kommentare (4)
ava
Stolzen | 26.05.2011, 11:01 #
Вот так:

>>> import ConfigParser
>>> Config = ConfigParser.ConfigParser()
>>> Config.read('conf.cfg')
['conf.cfg']
>>> Config.sections()
['XXXX']
>>> def ConfigSectionMap(section):
... dict1 = {}
... options = Config.options(section)
... for option in options:
... try:
... dict1[option] = Config.get(section, option)
... if dict1[option] == -1:
... print "skip: %s" % option
... except:
... print "exception on %s!" % option
... dict1[option] = None
... return dict1
...
>>> XXXX = ConfigSectionMap("XXXX")
>>> XXXX
{'xxx': 'FSDxxx'}
>>> XXXX['xxx']
'FSDxxx'


Возвращает нормально - {'xxx': 'FSDxxx'}
ava
larinva | 26.05.2011, 11:13 #
сп-бо! Stolzen
вау smile , а покороче можно? не сочтите за наглость
ava
Stolzen | 26.05.2011, 11:22 #
Вот, короче:

>>> import ConfigParser
>>> Config = ConfigParser.ConfigParser()
>>> Config.read('conf.cfg')
['conf.cfg']
>>> get_sec = lambda cf, s: dict((o, cf.get(s, o)) for o in cf.options(s))
>>> get_sec(Config, 'XXXX')
{'xxx': 'FSDxxx'}


Или так:

>>> opt = dict((s, get_sec(Config, s)) for s in Config.sections())
>>> opt
{'XXXX': {'xxx': 'FSDxxx'}}
>>> opt['XXXX']['xxx']
'FSDxxx'
ava
larinva | 26.05.2011, 12:07 #
с меня + тема закрыта
Registrieren Sie sich oder melden Sie sich an, um schreiben zu können.
Unternehmen des Tages
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Mitwirkende
advanced
Absenden