参考链接: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格式配置文件内容的读取、修改、增加、删除,且支持映射回文件。其他格式不支持。