【问题标题】:Dynamic change in Configuration to reflect in user defined Data structures配置中的动态变化以反映在用户定义的数据结构中
【发布时间】:2011-08-12 05:29:10
【问题描述】:

在我的程序中,我读取了一个“配置文件”并从中初始化了许多类。我需要一种方法使配置文件中的动态更改能够成功更新所有类。 在 Python 中实现这一目标的最佳方式是什么?

例如: /etc/passwd 文件由

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

我的程序根据 /etc/passwd 文件中的输入为每个用户初始化用户定义的类。如果用户条目中的一个或多个属性在文件中动态更改,如何透明地应用它来重新初始化用户定义的类?

PS - 实际程序比上面的例子复杂得多。因此,不可能将配置更改透明地传播到用户定义的类。

【问题讨论】:

    标签: python configuration initialization


    【解决方案1】:

    您可以使用例如查看文件的更改。 pyinotify(Linux)或watchdog(跨平台)。检测到更改后,您可以更新数据结构。

    更新用户名(或存储在其他地方的其他“派生”信息)最好通过存储(和使用)不是它而是一些永远不会改变的不变量(例如 UID)来完成,通过相关 API 按需获取“派生”信息并使用它仅用于显示目的。

    【讨论】:

    • pyinotify 主要用于监控文件系统的变化。我需要一些通用的东西..让我们说用户更改的用户名。然后,它应该在数据中的任何地方更新。
    • 使用 pionotify 监听你想要的文件的变化。并在处理程序中完成所需的工作。我是不是错过了什么。由于要查找/更改的内容是您的 App 逻辑,因此我怀疑您会发现任何通用的内容。
    猜你喜欢
    • 1970-01-01
    • 2015-07-23
    • 2015-09-23
    • 1970-01-01
    • 2018-12-29
    • 2021-07-06
    • 1970-01-01
    • 2017-10-06
    • 2011-07-06
    相关资源
    最近更新 更多