One - One Code All

Blog Content

imp的用法

Python   2008-04-12 08:15:02

1.imp模块提供了一个可以实现import语句的接口。
使用imp可以用来导入模块和类。

imp.PY_SOURCE —-1
imp.PY_COMPILED——2
imp.C_EXTENSION——3

imp.get_suffixes()
返回一个列表,列表的元素是三元素元组。


2.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”必须是一个列表.


3.imp.load_module(name, file, pathname, description)
加载一个被find_module找到的模块. 如果模块已经被加载, 等同于reload().
当模块是包或者不从文件加载时, file和pathname可以是None和”.
成功加载后返回一个模块对象,否则抛出 ImportError异常.
需要自己关闭file,最好用try…finally…

4.imp.load_source(name,pathname[,file])的作用把源文件pathname导入到name模块中,name可以是自定义的名字或者内置的模块名称。
假设在路径E:/Code/Python3/下有一个文件test.py, 内容如下:

def myadd(x, y):
    return(x + y)


使用方法如下:

import imp
m = imp.load_source('mymod', 'E:/Code/Python3/test.py')
    
# 方法一
a = m.myadd(4, 10)
print(a)
    
# 方法二
import mymod
a = mymod.myadd(4, 10)
print(a)


上一篇:python判断nan
下一篇:python字典dict的深浅复制

The minute you think of giving up, think of the reason why you held on so long.