我还是Python新手,所以在阅读本文时请记住这一点。在
我一直在修改一个现有的Python脚本,它最初是由几个不同的人“组装”起来的。在
该脚本最初设计为使用名为“conf”的模块加载其“conf”/配置.py“基本上是Python代码。在
SETTING_NAME='setting value'
我修改了它,改为使用ConfigParser从配置文件中读取它的设置:
^{pr2}$我遇到的问题是如何指定要使用的配置文件。目前,我已经设法让它工作(在某种程度上),通过使用多个TAC文件,并使用另一个模块保存变量值来设置“CONFIG_FILE_NAME”变量。例如,我有一个“conf”模块/配置加载程序.py“:
global CONFIG_FILE_NAME
那么我的TAC文件有:
import conf.ConfigLoader as ConfigLoader
ConfigLoader.CONFIG_FILE_NAME = '/etc/service_settings.conf'
那么,conf/配置.py模块现在看起来像:
import ConfigLoader
config_file_parser = ConfigParser.ConfigParser()
config_file_parser.readfp(open(r'' + ConfigLoader.CONFIG_FILE_NAME))
它可以工作,但它需要管理两个文件,而不是一个conf文件。我试图用用法。选项“功能如http://twistedmatrix.com/documents/current/core/howto/options.html所述。所以我有twisted/插件/选项.py在
from twisted.python import usage
global CONFIG_FILE_NAME
class Options(usage.Options):
optParameters = [['conf', 'c', 'tidepool.conf', 'Configuration File']]
# Get config
config = Options()
config.parseOptions()
CONFIG_FILE_NAME = config.opts['conf']
那根本不管用。有什么提示吗?在
我不知道我是否理解你的问题。在
如果要从多个位置加载配置,可以向configparser传递一个文件名列表:https://docs.python.org/2/library/configparser.html#ConfigParser.RawConfigParser.read
如果您试图创建一个通用的配置管理器,您可以创建一个接收文件名的函数类,或者可以在环境变量中设置配置文件名,然后使用类似的方法在脚本中读取该变量操作系统环境获取('CONFIG_FILE_NAME')。在
相关问题 更多 >
编程相关推荐