Python的ConfigParser - 跨模块使用方法

6

我正在尝试理解最佳实践,以便在多个程序模块中访问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模块,以便用户可以覆盖默认的配置文件。我应该如何在一个模块/类中实现这个功能,使得其他模块可以使用config.get(spam, eggs)?
1个回答

4

假设您在问题中编写的代码位于模块configmodule.py中。然后其他模块可以通过以下方式访问它:

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

谢谢。使用这种解决方案,有办法将configfile变量传递给配置解析器吗? - Steve Crook
通常情况下,你会使用optparse或argparse让用户选择一个配置文件。如果选项和参数解析也在配置模块中完成,那么这应该很简单(如果你遇到问题,请随时扩展你的问题)。否则,这非常取决于你的特定程序结构。 - silvado
解决了,谢谢!诀窍是将optparse和ConfigParser放在同一个模块中。 - Steve Crook

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接