2017-02-20 84 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) 
相关问题