Форум сайта python.su
0
Всем привет,
Подскажите, есть ли уже готовые средства для парсинга содержимого конфиг-файл вот с такой струкутурой,
чтобы не писать парсер самому.
ui_translate.add(id="ui_dict_config_FC_Board_name", lang="en", cli_option="id", cli_label="FC Board ID", gui_label="FC Board ID", translation=[]) ui_translate.add(id="ui_dict_config_FC_Board_type", lang="en", cli_option="type", cli_label="Type", gui_label="Name:Type", translation=[("I0", "C12:INITIATOR"), ("I1", "C13:INITIATOR"), ("F1", "caX:FICON"), ("F2", "caX:FICON"), ("F3", "caX:FICON")]) ui_translate.add(id="ui_dict_config_FC_Board_mode", lang="en", cli_option="mode", cli_label="Mode", gui_label="Mode", translation=[])
?
Отредактировано fr0st84 (Сен. 4, 2012 12:59:55)
Офлайн
72
Ну вот так примерно так, proof of concept, предположим что ваш файл называется test.conf
class Config: def __init__(self): self.options = {} def add(self, **kwargs): if 'id' in kwargs and 'cli_label' in kwargs: self.options[kwargs['id']] = kwargs['cli_label'] def __str__(self): return '\n'.join('%s: %s' % x for x in self.options.iteritems()) def load_config(filename): config = Config() execfile(filename, {'ui_translate': config}, {}) return config print load_config('test.conf')
Офлайн
568
with open('text.txt','r') as text: src=text.read() class UiTranslateRecord(object): def __init__(self, **kw): for key, value in kw.items(): setattr(self,key, value) def __repr__(self): return str(self.__dict__) class UiTranslate(object): def __init__(self): self.items=[] def add(self, *args, **kw): self.items.append(UiTranslateRecord(**kw)) ui_translate=UiTranslate() exec src for i in ui_translate.items: print i
Офлайн
0
То что нужно. Большое всем спасибо за помощь. Очень оперативно и по делу.
Пошел учить матчасть 
Всем удачи.
Офлайн