2012-01-06 74 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