2017-07-19 1 views
0

上のフォルダからすべてのファイルは、私はいくつかのpythonファイルとフォルダを持っています。このファイルの インポートのpython

modules 
|--> __init__.py 
|--> car.py 
|--> plane.py 
|--> ship.py 
|--> etc... 

それぞれがこれに構成されてい

car.py

NAME = "car_name" 
def mainloop(*args): 
    ... 
    return whatever 

plane.py

NAME = "some_different_name" 
def mainloop(*args): 
    ... 
    return whatever 

ように...

私はこのような辞書としての私の親ディレクトリから動的にそれらをインポートする:

from modules import modules 
print(modules) 
{ 
    "car_name": <function mainloop at ...>,  
    "some_different_name": <function mainloop at ...>, 
    etc.. 
} 

私は、フォルダやファイル名になりますどのように多くのファイルがわかりません。 どうすればいいですか?

答えて

4

modules.py

import os, importlib 
fs = [f for f in os.listdir('.') if f.endswith('.py')] 
modules = {m.NAME: m.mainloop for m in map(importlib.import_module, fs) 
       if hasattr(m, 'mainloop')} 
+1

私は彼のファイル構造は、彼が親ディレクトリ –

+0

うん上でスクリプトを実行しているので、あなたは '、fs''で 'os.listdir(」./モジュール)を持っている必要があります示唆していると思います、それは 'os.listdir( './ modules')' Thanks gys – Enuff