我正在编写一个运行一些模拟的 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 等。有办法吗?
请您参考如下方法:
从外部文件导入任意代码是个坏主意。
请将您的参数放在配置文件中并使用 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
