2016-09-04 6 views
-2

私はファイルのリストを持っています、pythonのコマンドを使用してfrom filename import *、私はファイルの正確な名前を与えていますが、リスト上で反復処理を行い、ファイルから関数を取り込んでそれを処理するには、from list[i] import *として使用したいのですが、機能しません。ファイルのリストに使用するように変更する必要がありますので、簡単に反復することができます。私はファイルのリストを持っているので、それらのファイルから関数を反復してインポートしたいので、1つ1つ、Pythonでそれらを処理するようにします。

+0

文字列をコマンドとして評価するには 'eval'を使用してください。 –

+1

いいえ、' eval'は解決策として決して指定しないでください。 http://nedbatchelder.com/blog/201206/eval_really_is_dangerous.html – idjaw

+0

文字列が信頼できない入力に由来する場合のみ、リストが修正されていれば問題はないはずですか? –

答えて

1

動的インポートを探している場合は、__import__機能を探しています。そのため使用importlib

for modl in ('foo', 'bar', 'baz', 'bat',): 
    __import__('parent.' + modl) 
3

from importlib import import_module 

module_list = [import_module("test.mod{}".format(i)) for i in range(20)] 

# OR 

module_list = [] 
for i in range(20): 
    module_list.append(import_module("test.mod{}".format(i))) 

documentationで述べたように、は、__import__などの内部のものを使用しないでください。

関連する問題