2017-07-19 109 views
0

所有的文件我有几个蟒蛇文件的文件夹:导入从文件夹蟒蛇

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

我觉得他的文件结构意味着你应该有'os.listdir(” ./模块)''中fs',因为他是一个运行在父目录 –

+0

没错脚本,它改变了'os.listdir('./ modules')'谢谢你们 – Enuff