imp.load_source()

imp.load_source(name,pathname[,file])的作用把源文件pathname导入到name模块中,name可以是自定义的名字或者内置的模块名称。

假设在路径E:/Code/Python3/下有一个文件test.py, 内容如下:

  1. def myadd(x, y):
  2. return(x + y)

使用方法如下:
import imp
m = imp.load_source(‘mymod’, ‘E:/Code/Python3/test.py’)

方法一

  1. a = m.myadd(4, 10)
  2. print(a)

方法二

  1. import mymod
  2. a = mymod.myadd(4, 10)
  3. print(a)

imp.find_module(name[, path])

找到模块名为name的模块,第二个参数是搜索的路径列表,如果省略或者为None,则会在sys.path的路径中寻找
如果找到了,会返回一个三个元素的元组:
(file, name, description)
第一个是file对象,第二个是该文件对象所在的路径,第三个是get_suffixes()返回的desc

在当前目录找到的本地模块

  1. In [2]: imp.find_module('path')
  2. Out[2]: (<open file 'path.py', mode 'U' at 0x7f53c9241e40>, 'path.py', ('.py', 'U', 1))

在内置模块里找到的

In [10]: imp.find_module('sys')
Out[10]: (None, 'sys', ('', '', 6))

如果没找到,会抛出ImportError

imp.load_module(name, file, pathname, description)

加载一个之前被find_module()找到的模块

如果加载成功,返回一个模块对象
如果加载失败,抛出ImportError