1

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

任何帮助,将不胜感激。

4

1 回答 1

1

如果将设置文件的路径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()因为这就是它现在所做的。

于 2019-10-18T20:56:18.920 回答