2011-04-25 53 views
0

在我的程序中,我读取了一个“配置文件”,并从中初始化了许多类。我需要一种方式让动态更改配置文件,可以成功更新所有的类。 这可以在Python中实现的最佳方式是什么?配置中的动态更改以反映用户定义的数据结构

为例: 的/ etc/passwd文件包含

用户名:密码:用户ID:组ID:用户ID信息:主目录:壳牌

我的程序初始化用户基于/ etc/passwd文件中的输入为每个用户定义的类。如果用户条目中的一个或多个属性动态地改变了文件,那么如何透明地应用这些属性来重新初始化用户定义的类?

PS - 实际的程序比上面的例子复杂得多。所以透明地将配置chnages传播给用户定义的类是不可能的。

回答

0

您可以使用例如视图来观察文件的更改。 pyinotify(Linux)或watchdog(跨平台)。一旦检测到更改,您可以更新您的数据结构。通过存储(并使用)不是它,而是一些永不改变的不变量(例如UID),使用相关的API获取“派生”信息以及根据需要使用相关的API来获得更好的用户名(或其他“派生”信息存储在其他地方)仅用于显示目的。

+0

pyinotify主要用于监视文件系统的变化。我需要一些通用的..可以说用户更改的用户名。然后,它应该在数据的每个地方都进行更新。 – w00t 2011-04-25 16:13:57

+0

使用pyionotify监听所需文件中的更改。并在处理程序中完成所需的工作。我错过了什么。由于寻找/和要改变什么是你的应用逻辑,我怀疑你会发现任何通用的东西。 – Zimbabao 2011-04-26 08:31:26