Я совершенно новичок в stackoverflow, и на самом деле я нашел решение своей существующей проблемы: Создание класса со всеми элементами, указанными в файле, с помощью ConfigParser. Данное разрешение пиллмунчера почти идеально подходит для моего случая. Но мне нужно различать разделы и не переопределять каждый раз соответствующие значения.
Есть ли способ сделать тот же класс, но различать разделы и, следовательно, имена?
Пример ввода (файл конфигурации):
[x_axis]
speed = 1020
...
[y_axis]
speed = 1030
...
Класс пилюлей:
from ConfigParser import SafeConfigParser
section_names = 'x_axis', 'y_axis'
class MyConfiguration(object):
def __init__(self, *file_names):
parser = SafeConfigParser()
parser.optionxform = str # make option names case sensitive
found = parser.read(file_names)
if not found:
raise ValueError('No config file found!')
for name in section_names:
self.__dict__.update(parser.items(name)) # <-- here the magic happens
config = MyConfiguration('my.cfg', 'other.cfg')
Пожалуйста, даже если я задаю совершенно нубский вопрос, подскажите, в каком направлении мне искать ответы. Глобальный конфигурационный файл, представленный всеми его разделами, должен быть не только моей заботой.