2012-01-06 104 views
2

我想了解實現Python的ConfigParser的最佳方式,以便可以訪問多個程序模塊的元素。我正在使用: -Python ConfigParser - 跨模塊使用

import ConfigParser 
import os.path 

config = ConfigParser.RawConfigParser() 

config.add_section('paths') 
homedir = os.path.expanduser('~') 
config.set('paths', 'user', os.path.join(homedir, 'users')) 
[snip] 
config.read(configfile) 

在最後一行中引用了configfile變量。這必須傳遞給配置模塊,以便用戶可以覆蓋默認的配置文件。我應該如何在模塊/類中以其他模塊可以使用config.get(垃圾郵件,雞蛋)的方式來實現?

回答

3

假設您在問題中編寫的代碼位於模塊configmodule.py內。然後其他模塊可以通過以下方式訪問它:

from configmodule import config 
config.get(spam, eggs) 
+0

謝謝。使用這個解決方案,有沒有辦法將configfile變量傳遞給配置解析器? – 2012-01-06 13:04:30

+0

您通常會使用optparse或argparse讓用戶選擇一個配置文件。如果選項和參數解析也在配置模塊中完成,這應該很簡單(但如果遇到問題,請隨時擴展您的問題)。否則,它很大程度上取決於您的具體計劃結構。 – silvado 2012-01-06 14:00:32

+0

解決了它,謝謝!竅門是將optparse和ConfigParser放在同一個模塊中。 – 2012-01-06 14:45:23