python动态import某个文件夹下的模块
来源:互联网 发布:淘宝详情页怎么收费 编辑:程序博客网 时间:2024/05/22 12:29
因为有 “用户上传脚本,动态运行”的需求,所以要动态地import用户上传的模块
所以写了个函数动态地import
# -*- coding: utf-8 -*- import osimport sysimport os.pathimport Queueimport commandsdef test(rootDir): #判断传入的路径下是否有“__init__.py”这个文件了,如果没有则创建,否则import会认为没有这个moudle if os.path.exists(rootDir): arr = rootDir.spliplit("/") pathDir = "" for path in arr: pathDir = pathDir +path+"/" if not os.path.exists(pathDir+"/__init__.py"): commands.getoutput("touch " +pathDir+"/__init__.py") #遍历文件夹找出app_开头的py文件,导入,注意globals,否则作用域只是在这个函数下 list_dirs = os.walk(rootDir) for dirName, subdirList, fileList in list_dirs: for f in fileList: file_name = f if file_name[0:4] == "app_" and file_name[-3:] == ".py": impPath = "" if dirName[-1:] != "/": impPath = dirName.replace("/",".")[2:] else : impPath = dirName.replace("/",".")[2:-1] print dirName,"\n",impPath if impPath != "": exe_str = "from " + impPath+"."+file_name[0:-3]+" import * " else: exe_str = "from " +file_name[0:-3]+" import *" exec(exe_str,globals())test("./app/inapp/")a = Printaa()a.printha()
./app/inapp/有个app_XXX.py的文件,里面有
Printaa这个类,用来测试的
0 0
- python动态import某个文件夹下的模块
- Python import 其他文件夹下的模块
- Python引用文件夹下的py文件的方法-import
- python在windows下import其他模块的注意事项
- python shell命令行中import多层目录下的模块
- 浅析python 的import 模块
- python引入不同文件夹下的自定义模块
- python中导入其他目录或文件夹下的模块
- Python引用(import)文件夹下的py文件的方法
- Python引用(import)文件夹下的py文件的方法
- python import自己编写的模块:import json和simplejson
- python的模块和包机制:import和from..import..
- python中import自己写的模块
- python: import模块的相关问题
- python的3种import模块方法
- python中import模块的方法
- python import模块方法
- python中import模块
- 播放器设计与开发 (转载)
- 黑马程序员—JAVA高新技术_泛型
- Linux Unix.Trojan.Elknot (Linux.BackDoor.Gates.5)木马清理
- win7右键打开不了管理的解决办法
- Multi-Scale Orderless Pooling of Deep Convolutional Activation Features
- python动态import某个文件夹下的模块
- HttpURLConnection 处理乱码办法
- iOS 上的蓝牙框架 - Core Bluetooth for iOS [译]
- 计算字符串的height
- LeetCode-N-Queens
- 手 机 设 计 技 巧
- 黑客如何赚钱?黑客是怎么赚钱的——————【Badboy】
- 杂码系列之 Annoying painting tool hdoj 1801
- Axis2与Eclipse整合开发Web Service之二:WSDL逆向生成服务端