2017-02-20 81 views
0

我正在嘗試接受用戶的輸入,並查看是否有名爲他們輸入的模塊。如果有的話,那麼我希望這個模塊被導入,並調用其中同名的函數。我知道有更簡單的方法來做到這一點,但我想嘗試使它變得非常緊湊。如何在Python 3.6中導入名爲[userinput]的模塊?

這是我的想法:

userinput = str.lower(input(prompt)) 
try: 
    import (userinput) as _(userinput) 
    _(userinput).(userinput) 
except: 
    print("Module not found") 

如果找不到具有給定名稱的模塊,它只會跳閘異常並繼續。

我的問題是能夠從輸入的字符串中導入模塊。

回答

0
userinput = str.lower(input(prompt)) 
try: 
    exec("import %s as _(userinput)"%(userinput)) 
    #_(userinput).(userinput) ??????? 
except: 
    print("Module not found") 

的EXEC()的部分作品,但我不知道你想用_(userinput)。(userinput)做

+0

如果你不在乎用戶是否輸入'os; os.remove('〜')#'這可行。 –

+0

使用'exec(「{}。_ {}」.format(userinput,userinput))'可能會工作,只是不識別我想導入的模塊。 –

+0

「識別模塊」是什麼意思? – Phonzi

0

使用__import__功能是什麼。

userinput = input("Enter name of module to import: ") 
module = __import__(userinput) 
相關問題