在Python中包含外部文件

Spo*_*pot 1 python import python-module

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

我发现的一个答案是Stack Overflow问题如何在给定完整路径的情况下导入模块?,将所有模拟参数放在parm.py文件中,并使用imp包导入该模块.

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

parm = imp.load_source('parm', '/path/to/parm.py')
Run Code Online (Sandbox Code Playgroud)

那么所有参数都必须被引用为

parm.p1, parm.p2
Run Code Online (Sandbox Code Playgroud)

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

Joh*_*web 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
Run Code Online (Sandbox Code Playgroud)