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

How to load module into python with argv

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

从 oneRunParams 导入 *

我现在想将其替换为仅对指定的 oneRunParams 路径执行相同操作的内容。

您可以使用 __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()
from sys import argv

使用上面的语句。

fileName=argv[0]