os.glob(pathname):返回一个匹配pathmane的路径名列表,本质就是正则匹配,匹配出当项目下所有匹配的路径名。
例如Model下有:page.py,lol.py
那么glob.glob(\svn\Model\*.py)就会返回一个列表:
['E:\\svn\\Model\\page.py','E:\\svn\\Model\\lol.py'].
然后我们可以截取出这个列表中的文件名:page.py,lol.py.
然后在批量导入这些文件!
示例代码:
importglob
importos
basedir = os.path.abspath(os.path.dirname(__file__))
defregister_controller(app):
"""自动查找Controller下的蓝图控制器 自动注册"""
modpath = os.path.split(__file__)[0]
printos.path.join(modpath,'*.py')
pys = glob.glob(os.path.join(modpath,'*.py'))
blueprint_dict = []
print"pys", pys
map(lambdax: blueprint_dict.append(x.split(os.sep)[-1:][0][:-3]), pys)
print'blueprint_dict',blueprint_dict
forxinblueprint_dict:
ifx[-2:] !="__":
mod =__import__("Controller."+ x,fromlist=[x])
modattr =getattr(mod, x)
app.register_blueprint(modattr)