向Python Twisted添加命令行参数

2024-10-02 18:21:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我还是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']

那根本不管用。有什么提示吗?在


Tags: 模块文件namepyimport脚本configconf
1条回答
网友
1楼 · 发布于 2024-10-02 18:21:44

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

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

如果您试图创建一个通用的配置管理器,您可以创建一个接收文件名的函数类,或者可以在环境变量中设置配置文件名,然后使用类似的方法在脚本中读取该变量操作系统环境获取('CONFIG_FILE_NAME')。在

相关问题 更多 >