2011-04-25 49 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