我想在Python主脚本的中间使用一个配置文件。 在这个文件中,主脚本中已经初始化了一些变量。在
主脚本:
# -*- coding: utf-8 -*-
import imp
import optparse
from time import strftime, strptime
from datetime import date, timedelta
[...]
date_mois = date_de_ref.strftime("%m")
date_annee = date_de_ref.strftime("%Y")
date_moins2j = (date_de_ref - timedelta(days=2)).strftime("%d/%m/%Y")
date_moins7j = (date_de_ref - timedelta(days=7)).strftime("%d/%m/%Y")
imp.load_source("conf_file", "part_1.config")
import conf_file
for task in conf_file.list_tasks:
print task[1]
print "The end!"
“part_1.config”:
^{pr2}$如果我这样做,我会得到:
Traceback (most recent call last):
File "ordo_na.py", line 48, in <module>
imp.load_source("conf_file", "part_1.config")
File "part_1.config", line 9, in <module>
["B", "BAT003 FIN=" + date_moins2j, ""],
NameError: name 'date_moins2j' is not defined
我试过了:
import ordo_na
list_tasks = [
["B", "BAT001", ""],
["B", "BAT002 DEBUT=21/13/12", ""],
["B", "BAT003 FIN=" + ordo_na.date_moins2j, ""],
]
主脚本似乎以这种方式执行了两次。在
如何在配置文件中使用主脚本中的变量?
如果可能的话,我希望避免import ordo_na
行,并尽可能保持配置文件的干净。在
顺便说一下,我使用的是python2.6.6(我不能升级到更新的版本)。在
谢谢!在
模块是独立的,并且您无法轻松地从导入模块访问导入模块的变量(我认为您正在尝试这样做)。在
考虑:
部件1.配置
主脚本
^{pr2}$或者,您可以将
part_1.config
重命名为my_config.py
,然后简单地使用import
:主脚本
如果您不想显式处理传递参数的问题,您可以始终传递导入模块(主脚本)的全局字典,并访问该字典,那么您的文件将如下所示:
部件1.配置
主脚本
相关问题 更多 >
编程相关推荐