Модуль 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)


arrow_upward
1
arrow_downward

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

Однако метод 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