Python:从字符串动态导入另一个文件夹中的脚本

时间:2016-10-14 07:37:59

标签: python

我需要从位于另一个文件夹中的字符串(路径)导入并运行脚本。输入需要完全动态。当文件位于同一文件夹中时,下面的代码可以正常工作,但当文件位于其他位置时,我似乎无法使其正常工作。

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'的模块

on windows os

1 个答案:

答案 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”作为包。