我需要从位于另一个文件夹中的字符串(路径)导入并运行脚本。输入需要完全动态。当文件位于同一文件夹中时,下面的代码可以正常工作,但当文件位于其他位置时,我似乎无法使其正常工作。
main.py
path = 'bin\TestScript'
module = __import__(path)
my_class = getattr(module, '__main__')
instance = my_class(3,16)
print(instance)
TestScript.py
def __main__(a,b):
return(a*b)
获取错误: ImportError:没有名为'bin \\ TestScript'的模块
答案 0 :(得分:1)
您需要将目录与模块名称分开,并将其添加到模块搜索路径中。例如:
import os.path
import sys
path = 'bin\\TestScript'
mdir = os.path.dirname(path)
modname = os.path.basename(path)
sys.path.append(mdir)
module = __import__(modname)
my_class = getattr(module, '__main__')
instance = my_class(3,16)
print(instance)
另一种方法是将目录“bin”作为包。