парсинг .properties файл в Python

ConfigParser модуль повышает исключение, если Вы анализируете простой стиль Java .properties файл, содержание которого является парами "ключ-значение" (я.. e без INI-стиля разделяют заголовки). Есть ли некоторое обходное решение?

48
задан tshepang 14 February 2013 в 03:25
поделиться

1 ответ

Допустим, у вас есть, например:

$ cat my.props
first: primo
second: secondo
third: terzo

т.е. будет форматом .config , за исключением того, что в нем отсутствует начальное имя раздела. Затем легко подделать заголовок раздела:

import ConfigParser

class FakeSecHead(object):
    def __init__(self, fp):
        self.fp = fp
        self.sechead = '[asection]\n'

    def readline(self):
        if self.sechead:
            try: 
                return self.sechead
            finally: 
                self.sechead = None
        else: 
            return self.fp.readline()

использование:

cp = ConfigParser.SafeConfigParser()
cp.readfp(FakeSecHead(open('my.props')))
print cp.items('asection')

вывод:

[('second', 'secondo'), ('third', 'terzo'), ('first', 'primo')]
74
ответ дан 7 November 2019 в 12:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: