2017-03-17 70 views
1

我對python相當陌生,因此對於缺乏知識表示歉意。Python - 動態導入模塊並將它們分配給本地名稱

這就是我希望做的:

說我現在有以下

import pandas as py 
import numpy as np 
... 
import somePackage as someName 

我希望能夠通過其包裝和名稱詞典要做到這一點,要實現像這樣的東西

imports = {'pandas' : 'py', 'numpy' : 'np' ... 'somePackage' : 'someName'} 
for package in imports.keys(): 
    import package as imports[package] 

我該如何做到這一點?

回答

2

內置函數__import__將執行動態導入,其中模塊名稱在變量中指定。你可以通過直接更新globals()分配:

>>> imports = {'random':'r', 'statistics':'s'} 
>>> for package, target in imports.items(): 
     globals()[target] = __import__(package) 

>>> r.randrange(100) 
16 
>>> s.mean([10, 20, 61]) 
30.333333333333332 
+0

雖然這是你將如何做到這一點,你可能不應該;) –

+0

只是出於好奇,爲什麼不呢? – forteddyt

+0

@AnthonySottile – forteddyt

相關問題