我见过人们使用 *.cfg(Python Buildout)、*.xml(Gnome)、*.json(Chrome 扩展)、*.yaml(Google App Engine)、*.ini 甚至 *.py 作为应用程序配置文件(比如 Django)。
我的问题是:为什么有这么多不同的配置文件格式?我可以看到 xml vs json 方法(更不冗长)或 Python 方法(有时你有一个 Python 应用程序并且不想使用特定模块来解析配置文件)的优势,但是另一个呢方法?
我知道还有比我举例说明的那些配置文件更多的格式。与彼此相比,它们的真正优势是什么?历史原因?与不同系统的兼容性?
如果您要启动一个应用程序来读取某种配置文件(带有插件生态系统),您会使用哪一个?
我举例的哪些是最古老的?你知道它的历史吗?
原文由 Somebody still uses you MS-DOS 发布,翻译遵循 CC BY-SA 4.0 许可协议
这主要是个人喜好、目的和可用的库。我个人认为 xml 对于配置文件来说过于冗长,但它很流行并且有很棒的库。
.cfg、.ini 是运行良好的传统格式,许多语言都有一个包含的库来读取它们。我已经在 Java、Python、C++ 中毫无问题地使用过它。它并不真正用作数据交换格式,如果我要传递数据,我可能会使用相同的格式进行配置和数据交换。
yaml 和 json 介于 xml 和 cfg/ini 之间。您可以在两者中定义许多数据结构,也可以是像 cfg 一样的简单键值。这两种格式在 python 中都有很好的库,我假设许多其他语言也有库。我相信 json 是 yaml 的子集。
我从来没有使用过 python 文件作为配置,但它似乎确实适用于 django。它确实允许您在配置中包含一些可能有用的代码。
上次我在选择格式时选择了 yaml。它很简单,但有一些不错的特性,而且 python 库很容易安装而且非常好。 Json 紧随其后,因为 yaml 库解析了 json,所以我选择了 yaml 而不是它。