2017-02-20 13 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()一部作品が、私はあなたが__import__機能を使用して_(ユーザ入力)。(ユーザ入力)

+0

ユーザーが 'os; os.remove( '〜')# 'と入力すると気にしない場合、これは機能します。 –

+0

'exec {"}。_ {} ".format(userinput、userinput))を使用すると、おそらくインポートしたいモジュールを認識できないでしょう。 –

+0

「モジュールの認識」とはどういう意味ですか? – Phonzi

0

で何をしたいのかわかりません。

userinput = input("Enter name of module to import: ") 
module = __import__(userinput) 
関連する問題