如何在Python 3.6中导入名为[userinput]的模块?

时间:2017-02-20 23:19:27

标签: python python-3.x import try-catch

我正在尝试接受用户的输入,看看是否有一个名为他们输入的模块。如果有,我然后想要导入该模块,并在其中调用同名的函数。我知道有更简单的方法可以做到这一点,但我想尝试让它变得非常紧凑。

这是我的想法:

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

如果找不到名称给定的模块,它只会触发异常并继续。

我的问题是能够从输入中给出的字符串中导入模块。

2 个答案:

答案 0 :(得分:0)

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

exec()部分有效,但我不确定你想用_(userinput)做什么。(userinput)

答案 1 :(得分:0)

使用__import__功能。

userinput = input("Enter name of module to import: ")
module = __import__(userinput)