如何使用 ConfigObj 附加到现有配置文件?

How to append to existing config file using ConfigObj?

我正在尝试使用 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

如有任何帮助,我们将不胜感激。

如果您将设置文件的路径与 create_empty=True 参数一起传递给 ConfigObj() 初始化器,它只会在文件不存在时创建一个空文件——从而允许要更新的任何现有文件。

这在文档的 ConfigObj specifications 部分进行了解释,其中描述了该方法接受的关键字参数。

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(),因为它现在就是这样做的。