2016-10-14 37 views
-1

我需要從位於另一個文件夾中的字符串(路徑)導入並運行腳本。輸入需要完全動態。下面的代碼在文件位於同一文件夾時工作,但當文件位於其他位置時,我似乎無法使其工作。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) 

獲取errror: 導入錯誤:沒有模塊名爲 '倉\\ TestScript'

在Windows操作系統上

+1

那究竟是什麼問題呢?你有錯誤嗎? – RvdK

+0

你在使用哪個操作系統? –

+0

獲取錯誤:ImportError:沒有名爲'bin \\ TestScript'的模塊 – Patrick

回答

1

您需要將目錄從模塊名稱中分離出來並添加到th中e模塊搜索路徑。例如:

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」作爲一個包。

+0

你的傳奇!完美的作品,謝謝堆:) – Patrick

相關問題