发现imp主要有两种用法
- imp.find_module(name[,path])
如果path为空,则按照sys.path路径搜索模块名, 返回三元组(file, pathname, description).file为刚打开的模块文件, pathname为模块的路径, description为imp.get_suffixes()返回的元组.
如果模块为包,file返回None, pathname为包路径, description返回的type为PKG_DIRECTORY.
find_module不会处理层次结构的模块名(带’.’号的模块名module.name1.name2).
“path”必须是一个列表. - imp.load_module(name, file, pathname, description)
加载一个被find_module找到的模块. 如果模块已经被加载, 等同于reload().
当模块是包或者不从文件加载时, file和pathname可以是None和”.
成功加载后返回一个模块对象,否则抛出 ImportError异常.
需要自己关闭file,最好用try…finally…