我正在编写一个运行一些模拟的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等。有没有办法做到这一点?
答案 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()
,但你应该考虑另一种方式。