1

我正在编写一个运行一些模拟的 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 等。有没有办法做到这一点?

4

2 回答 2

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
于 2012-04-24T05:26:21.083 回答
1

您可以使用execfile()它,但您应该完全考虑另一种方式。

于 2012-04-24T04:49:52.773 回答