python各种库管理配置文件的比较

参考链接:https://stackoverflow.com/questions/19078170/python-how-would-you-save-a-simple-settings-config-file

invoke.config官网:http://docs.pyinvoke.org/en/1.2/concepts/configuration.html

python configparser 库官网:https://docs.python.org/3.7/library/configparser.html#configparser.ConfigParser

https://blog.csdn.net/freeking101/article/details/52471799

https://blog.csdn.net/babyfish13/article/details/64919113

 

invoke.config

    优点:
        invoke.config 只要定义了prefix参数,会自动依次从 用户代码、命令行、运行文件内、环境变量、项目解释器内、用户家目录配置文件(~/.)、系统配置文件(/etc/)
        寻找并加载.yaml, .yml, .json 或者 .py格式的配置文件,
        只要找到一个就不会继续往下找。

    注意:当 yml 和 json 格式的文件 同时存在的时候,会加载 yml 配置文件,忽略 json 配置文件。

    读取语法:支持通过字典键值对的形式调用,支持通过.的形式调用。

    是否修改:可以使用字典的CRUD方法对加载的配置文件进行操作,会即时对读取到的内容生效,但无法映射修改后的内容到本地的那个找到的配置文件。


configparser  python内置库
    python内置的库,支持对ini格式的配置文件的读取、增加、修改、删除,并可以将修改保存到原配置文件,或者另外一个配置文件。

    缺点:只支持对ini格式的配置文件进行操作,其他格式不支持。

configobj.ConfigObj      python第三方库,需要安装
    功能都和configparser一样:支持对ini格式的配置文件的读取、增加、修改、删除,并可以将修改保存到原配置文件,或者另外一个配置文件。

    优点:加载的文件格式为OrderedDict(有序字典),所以完全支持字典的所有方法。支持将修改保存到文件。

    缺点:和configparser一样,只支持对ini格式的配置文件进行操作,其他格式不支持。

 

json  python内置库

    功能: 解析读取、修改、保存.json格式的文件,支持保存到.json文件

    保存到文件时和文件的保存方式一样。

 

yaml、pyyaml
    功能:将yaml文件读取并转换为字典的形式,进行增删改查后可以写入yaml文件。

    保存到文件时和文件的保存方式一样。

 

小结:
    invoke.config

                   支持对配置文件的自动查找,读取和读取后的重新定义,但是不支持将修改后内容映射回文件。
    configparser、configobj.ConfigObj

                    支持对ini格式配置文件内容的读取、修改、增加、删除,且支持映射回文件。其他格式不支持。
    json

                    支持对json格式配置文件内容的读取、修改、增加、删除,且支持映射回文件。其他格式不支持。
    yaml、pyyaml

                     支持对json格式配置文件内容的读取、修改、增加、删除,且支持映射回文件。其他格式不支持。
 

 

 

你可能感兴趣的:(python)