如何使用argv将模块加载到python中

时间:2018-03-08 03:38:24

标签: python python-3.x python-import

我想将oneRunParams.py加载到我当前的程序中,但在我运行它之前不知道它在哪里。我希望将它作为输入参数,通过argv访问。我正在使用:

来自oneRunParams import *

我现在想要用仅与指定的oneRunParams的路径相同的东西替换它。

2 个答案:

答案 0 :(得分:2)

您可以使用__import__

以下是test.py

# test.py
import sys

filename = sys.argv[1]
f = __import__(filename[:-3]) # This removes the `.py` extension
f.test()

以下是test2.py

# test2.py
def test():
    print('hello world')

运行以下命令行:

python test.py test2.py

提供以下输出:

hello world

如果您确实要在本地范围内加载所有内容,则必须执行以下操作:

filename = sys.argv[1]
f = __import__(filename[:-3], globals(), locals(), ['*'])
for k in dir(f):
    locals()[k] = getattr(f, k)

test()

答案 1 :(得分:0)

from sys import argv

使用上述声明。

fileName=argv[0]