0

目前我的配置选项(常量/变量)有点零散,我在 config.py 中有大部分,但有些在顶部的 myfile.py 中。

/utilities/myfile.py
/config.py

您可能会在我的 myfile.py 中找到的一个示例是:

TEMP_DIR = '/tmp'

如果我想将此定义从 myfile.py 移动到我的 config.py 中,但仍然在 myfile.py 中使用它,我该怎么做?

我是 python 新手,但我认为它与 myfile.py 顶部的内容类似

from config
4

3 回答 3

0

myfile.py你可以放

import config

TEMP_DIR并访问

config.TEMP_DIR

前提是包含的目录config.py在您的PYTHONPATH中。

于 2012-11-20T13:05:16.630 回答
0

变体 1

from config import *

这会污染 myfile.py 中的整个命名空间

变体 2

from config import foo, bar, baz

必须提到 myfile.py 中使用过的值。

变体 3

import config
...
x = config.foo

每个值都需要参考配置。

您的选择,但我更喜欢变体 3。要在 myfile.py 中查看config.py,您必须编辑PYTHONPATH或使用相对导入:

from ... import config
于 2012-11-20T13:06:42.150 回答
0

另一种方法是使用execfile. 这将使使用不同的配置文件变得更容易(例如在命令行上指定要使用的配置文件)。

例子:

# myconfig.py
TEMP_DIR = "/tmp/"

# myotherconfig.py
TEMP_DIR = "/tmp/foo"

# program.py (the main program)
import sys
config = {}
execfile(sys.argv[1], config)
print config["TEMP_DIR"]

调用程序:

$ python program.py myconfig.py
/tmp/
$ python program.py myotherconfig.py
/tmp/foo

相关:Python 配置文件:有什么文件格式推荐吗?INI格式还合适吗?看起来很老派

于 2012-11-20T13:22:58.537 回答