Модуль Python ConfigParser не может найти раздел

Я использую Python 2.6 для записи в файл .ini с именем config.ini. Вот мой код:

def saveConfig(self, selection, value, bool):
    Config = ConfigParser.RawConfigParser()
    Config.read("config.ini")
    Config.set(selection, value, bool)
    with open('config.ini', 'w') as configfile:
        Config.write(configfile)

Пока все в порядке, но когда я запускаю свой скрипт (таким образом, функция self.saveConfig('Config', 'testoption', 'True'), я получаю исключение NoSectionError:

ConfigParser.NoSectionError: Нет раздела: «Конфигурация»

Что кажется довольно странным, поскольку у меня действительно есть этот раздел.

Вот мой файл config.ini:

[Config]
version = 0.1-unstable
testoption = False
testbool = True

Я могу прочитать их значения с помощью метода .get(), но не могу установить другие значения. Идеи? Заранее спасибо.


person maikati    schedule 20.04.2013    source источник


Ответы (1)


Ваш код работает для меня.

Однако метод read() из RawConfigParser немного странный, поскольку он не вызовет исключения, если не сможет найти файл — вместо этого он возвращает список файлов, которые ему удалось прочитать.

Попробуйте что-то вроде этого...

def saveConfig(self, selection, value, bool):
    Config = ConfigParser.RawConfigParser()
    if not Config.read("config.ini"):
        raise IOError, 'cannot load config.ini'
    Config.set(selection, value, bool)
    with open('config.ini', 'w') as configfile:
        Config.write(configfile)
person Aya    schedule 20.04.2013
comment
Ха, отличная идея, он вернул IOError: не удается загрузить config.ini, я попробую изменить путь или что-то в этом роде. - person maikati; 20.04.2013