Форум сайта python.su
Имеется INI-файл с вот такой структурой:
...
[AC]
icon=battery-charging
[AC][DPMSControl]
idleTime=3600
[AC][HandleButtonEvents]
lidAction=64
powerButtonAction=8
[Battery]
icon=battery-060
[Battery][DPMSControl]
idleTime=300
[Battery][HandleButtonEvents]
lidAction=64
powerButtonAction=16
[LowBattery]
icon=battery-low
[LowBattery][BrightnessControl]
value=30
[LowBattery][HandleButtonEvents]
lidAction=64
powerButtonAction=16
...
import ConfigParser
config=ConfigParser.ConfigParser()
config.read('$fileName')
print( config.get('AC][HandleButtonEvents', 'powerButtonAction' ) )
"Traceback (most recent call last):",
" File \"<stdin>\", line 5, in <module>",
" File \"/usr/lib/python2.7/ConfigParser.py\", line 607, in get",
" raise NoSectionError(section)",
"ConfigParser.NoSectionError: No section: 'AC][HandleButtonEvents'"
Отредактировано xintrea (Янв. 22, 2021 11:27:34)
Офлайн
Не факт что именно такой конфиг конфигпарсер скушает. Вроде по документации он поддерживает только один уровень секций.
QSettings и configobj поддерживают несколько уровней, но там субсекции по другому определяются. Причем каждый по разному.
Возможно вам придеться писать свой конфигпарсеп с шариатом и гуриями для парсинга вот такого конфига.
[code python][/code]
Отредактировано PEHDOM (Янв. 22, 2021 10:27:06)
Офлайн
xintreaВ INI-формате такого понятия нет. Если делаешь подсекции, то они являются секциями.
Здесь видно, что HandleButtonEvents - это “субсекция”, а основная секция задается перед субсекцией в той же строке. Не знаю, является ли это стандартом для INI-файлов или нет, не я этот файл создавал.
[AC][DPMSControl] -> [AC@@@DPMSControl]
[AC@@@DPMSControl] -> [AC][DPMSControl]
Офлайн