第13章 配置文件和持久化

配置文件是对象持久化的一种形式。它包括了一个序列化的、在应用程序或服务器中对默认状态可编辑的表示。我们将对第9章“序列化和保存——JSON、YAML、Pickle、CSV和XML”中有关对象的序列化内容进行扩展,创建配置文件。

另外,如果有纯文本的可编辑的配置文件,也必须将应用定义为可配置的。进一步说,我们必须为应用程序定义一些可用的配置对象(或集合)。在许多情况下,会有一系列的系统级的默认值,并允许用户可以对这些值进行编辑。有关配置数据,将介绍6种表达方式。

  • 作为Windows最早的一部分,INI文件格式的流行部分原因在于它是被系统使用的,而且许多其他配置文件会用到这个格式。
  • PY文件是纯Python代码。它有一些优势,因为使用起来很熟悉,并且简单。
  • JSON或YAML的可读性都很强并且编辑起来很容易。
  • 特性文件经常用于java环境中。它使用起来相对简单,并且可读性强。
  • XML文件很流行,但是传输内容有些多余并且有时编辑起来很困难。在Mac OS中使用了一种基于XML格式的特性列表,即.plist文件。

以上格式的每一种都各有优缺点,也不存在最好的技术。在许多情况下,选择用哪种技术需要考虑与其他软件的兼容性或是在社区中很熟悉的格式。

有两种配置文件的使用场景,有些可以添加第3种使用场景,如下两种场景描述得很清楚。

  • 需要编辑一个配置文件。
  • 软件的一个部分需要读配置文件并使用选项和参数来修改它的行为。

配置文件很少会作为应用程序的主要输入。一个例外的情况是,只是用于模拟时使用配置文件作为主要输入。对于其他大多数情况,配置文件不是主要输入。例如,Web 服务器配置文件是用于定制服务器的行为,但Web请求是主要输入之一,数据库或文件系统是另外的主要输入。在GUI应用中,用户交互事件是一个输入,而文件或数据库可能是另一种输入,配置文件只对应用适当调控。 ...

Get Python面向对象编程指南 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.