Bezdepbonusu7Программирование: статьи и ответы

Вопрос

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

Автор вопроса: maikatiОтветов: 1

Я использую 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(), но не могу установить другие значения. Идеи? Заранее спасибо.

pythonparsingconfig

Ответы

Ответ 1 · рейтинг 1 · Aya

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

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

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы