Как добавить в существующий файл конфигурации с помощью ConfigObj? - PullRequest
1 голос
/ 18 октября 2019

Я пытаюсь использовать ConfigObj для записи в файл конфигурации с функцией.

#!/usr/bin/evn python3.5

import configobj

def createConfig(path):
    config = configobj.ConfigObj()
    config.filename = path
    config[REFNAME] = {}
    config[REFNAME]['URL'] = URL
    config.write()

REFNAME = input("Enter a reference name :")
URL= input("Enter a URL :")

createConfig('server.ini')

Когда вызывается функция createConfig(), файл конфигурации записывается, однако, если скрипт запускается снова, он перезаписывает файл конфигурации, созданный ранее. Я хочу сохранить предыдущие записи и только добавить в файл или перезаписать, если указан тот же REFNAME.

Мне трудно понять, как это сделать из документов:

https://configobj.readthedocs.io/en/latest/configobj.html

Любая помощь будет принята с благодарностью.

1 Ответ

1 голос
/ 18 октября 2019

Если вы передадите путь к файлу настроек инициализатору ConfigObj() вместе с аргументом create_empty=True, он создаст пустой файл только тогда, когда файл еще не существует, что позволит любому существующему файлу бытьобновлено.

Это объясняется в разделе Спецификации ConfigObj в документации, где описываются аргументы ключевых слов, которые принимает метод.

import configobj

def createConfig(path):
    config = configobj.ConfigObj(path, create_empty=True)
    config[REFNAME] = {}
    config[REFNAME]['URL'] = URL
    config.write()

REFNAME = input("Enter a reference name: ")
URL= input("Enter a URL: ")

createConfig('server.ini')

Примечание. Возможно, вы захотите изменитьимя функции для openConfig(), поскольку это то, что она делает сейчас.

...