将命令行参数添加到Python Twisted

时间:2014-06-25 22:47:55

标签: python twisted

我还是Python的新手,所以在阅读本文时请记住这一点。

我一直在攻击原先的#34; put"由几个不同的人一起。

该脚本最初旨在加载它的配置'使用名为" conf / config.py"的模块这基本上是Python代码。

SETTING_NAME='setting value'

我已修改此内容,而是使用ConfigParser从配置文件中读取它的设置:

import ConfigParser
config_file_parser = ConfigParser.ConfigParser()
CONFIG_FILE_NAME = "/etc/service_settings.conf"
config_file_parser.readfp(open(r'' + CONFIG_FILE_NAME))
SETTING_NAME = config_file_parser.get('Basic', 'SETTING_NAME')

我遇到的问题是如何指定要使用的配置文件。目前,我已经设法通过拥有多个TAC文件并设置" CONFIG_FILE_NAME"变量在那里使用另一个模块来保存变量值。例如,我有一个模块' conf / ConfigLoader.py":

global CONFIG_FILE_NAME

然后我的TAC文件有:

import conf.ConfigLoader as ConfigLoader
ConfigLoader.CONFIG_FILE_NAME = '/etc/service_settings.conf'

所以conf / config.py模块现在看起来像:

import ConfigLoader
config_file_parser = ConfigParser.ConfigParser()
config_file_parser.readfp(open(r'' + ConfigLoader.CONFIG_FILE_NAME))

它可以工作,但它需要管理两个文件而不是一个conf文件。我试图使用" usage.Options" http://twistedmatrix.com/documents/current/core/howto/options.html中描述的功能。所以我有twisted / plugins / Options.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']

这根本不起作用。有什么提示吗?

1 个答案:

答案 0 :(得分:0)

我不知道我是否理解你的问题。

如果要从多个位置加载配置,可以将文件名列表传递给configparser:https://docs.python.org/2/library/configparser.html#ConfigParser.RawConfigParser.read

如果您正在尝试创建一个通用配置管理器,您可以创建一个接收文件名的函数类,或者您可以使用在环境变量中设置配置文件名,并使用类似os的内容在脚本中读取该变量.environ.get( 'CONFIG_FILE_NAME')。