在Python中包含外部文件

时间:2012-04-24 04:35:03

标签: python import python-module

我正在编写一个运行一些模拟的Python脚本,但它需要很多输入参数(大约20个)。所以我想把所有模拟参数都包含在外部文件中。最简单的方法是什么?

我找到的一个答案是在Stack Overflow问题 How to import a module given the full path? 中,将所有模拟参数放在parm.py文件中并使用imp包导入该模块。

这将允许运行此脚本的用户提供任何文件作为输入。如果我以这种方式导入模块:

parm = imp.load_source('parm', '/path/to/parm.py')

然后所有参数都必须作为

引用
parm.p1, parm.p2

但是,我想在我的脚本中将它们称为p1,p2等。有没有办法做到这一点?

2 个答案:

答案 0 :(得分:7)

从外部文件导入任意代码是个坏主意。

请将您的参数放在配置文件中,并使用Python的ConfigParser模块将其读入。

例如:

==> multipliers.ini <==
[parameters]
p1=3
p2=4

==> multipliers.py <==
#!/usr/bin/env python

import ConfigParser

config = ConfigParser.SafeConfigParser()
config.read('multipliers.ini')


p1 = config.getint('parameters', 'p1')
p2 = config.getint('parameters', 'p2')

print p1 * p2

答案 1 :(得分:1)

你可以使用execfile(),但你应该考虑另一种方式。