我的脚本应该被称为像thiks:传递配置文件作为参数配置解析模块
# python start.py --config=start.cfg
所以我有三个文件:
start.py
import argparse
import options
parser = argparse.ArgumentParser(prog='mystart')
parser.add_argument("-f", "--file", dest="filename",
help="write report to FILE", metavar="FILE")
args = parser.parse_args()
ConfigFile = args.filename
test = options.getTest()
print test
options.py
from ConfigReader import getConfigValue as getVal
def getTest():
Test = getVal('main', 'test')
return Test
ConfigReader.py
import os
import ConfigParser
def config():
cfg = ConfigParser.ConfigParser()
for f in ('default.cfg',):
if os.path.exists(f):
cfg.read(f)
return cfg
return None
def getConfigValue(Section, Option):
cfg = config()
if cfg.has_option(Section, Option):
return cfg.get(Section, Option)
else:
return None
正如你可以看到我的config文件中,在我的模块ConfigReader.py硬编码。 如何将我的var ConfigFile传递到我的模块中?
这只是一个简单的例子。我有一堆应该访问这个变量的文件。
是一个全局变量的选择吗?有另一种方法吗?
使用一个'load_configuration()'函数,它的文件名作为参数。 –
我不确定我是否可以关注你。你能简单解释一下吗? –
在您导入并调用的选项模块中创建一个函数,并传递配置文件的文件名。不需要全局变量。 –