如何使用 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]
我想将 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]