2013-10-08 56 views
0

我對Python很熟練,但是這對我來說已經有一段時間了。從Python中的列表或字典導入模塊?

我有一個文件夾,充滿了我的工作室中的藝術家在Nuke中使用的腳本。爲了能夠從內部訪問它們,我需要通過Nuke讀入的init.py文件導入它們。

我希望能夠讓這些值的列表,或者通過一個水珠搜索,找到的一切適用的,或聲明的列表,如:

my_list = ['mod_1', 'mod_2', 'mod_3'] 

但我一直無法找到一個方法可以處理這個問題。我知道我可以使用變量名找到模塊,並通過導入它們:

module = getattr(__import__(package, fromlist=[name]), name) 

module = __import__(var) 

但是這兩種方法都需要我來分配的,我導入模塊的名稱。

我正在尋找一種方式做這些方針的東西:

capture = glob.glob('/scriptLocation/*.py') 
for i in capture: 
    import i 

my_list = ['mod_1', 'mod_2', 'mod_3'] 
for i in capture: 
    import i 

TIA!

回答

0

試試這個:

modules = map(__import__, moduleNames) 

驗證此link for more:(例如16.15)

>>> moduleNames = ['sys', 'os', 're', 'unittest'] 1 
>>> moduleNames 
['sys', 'os', 're', 'unittest'] 
>>> modules = map(__import__, moduleNames)  2 
>>> modules          3 
[<module 'sys' (built-in)>, 
<module 'os' from 'c:\Python22\lib\os.pyc'>, 
<module 're' from 'c:\Python22\lib\re.pyc'>, 
<module 'unittest' from 'c:\Python22\lib\unittest.pyc'>] 
>>> modules[0].version       4 
'2.2.2 (#37, Nov 26 2002, 10:24:37) [MSC 32 bit (Intel)]' 
>>> import sys 
>>> sys.version 
'2.2.2 (#37, Nov 26 2002, 10:24:37) [MSC 32 bit (Intel)]' 
+0

謝謝!第二次設置我回到辦公室!乾杯! – ThisGuy

+0

做了這項工作? – karthikr

+0

工作完美!謝謝!唯一的問題是記住哪個索引是哪個模塊,但是實際上,與每次導入寫入5行相比,這不是問題。再次感謝! – ThisGuy