码迷,mamicode.com
首页 > 编程语言 > 详细

Python之imp模块

时间:2015-04-26 10:56:53      阅读:256      评论:0      收藏:0      [点我收藏+]

标签:python   imp   

imp.get_suffixes()

返回3元组列表(suffix, mode, type), 获得特殊模块的描述.suffix为文件后缀名;mode为打开文件模式; type为文件类型, 1代表PY_SOURCE, 2代表PY_COMPILED, 3代表C_EXTENSION

>>> imp.get_suffixes()
[(‘.x86_64-linux-gnu.so‘, ‘rb‘, 3), (‘.so‘, ‘rb‘, 3), (‘module.so‘, ‘rb‘, 3), (‘.py‘, ‘U‘, 1), (‘.pyc‘, ‘rb‘, 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”必须是一个列表.
>>> print imp.find_module(‘os‘)
(<open file ‘/usr/lib/python2.7/os.py‘, mode ‘U‘ at 0x7fdeebd53a50>, ‘/usr/lib/python2.7/os.py‘, (‘.py‘, ‘U‘, 1))

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

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

实例

>>> file, pathname, desc = imp.find_module(‘os‘)
>>> myos = imp.load_module(‘sep‘, file, pathname, desc)
>>> myos
<module ‘sep‘ from ‘/usr/lib/python2.7/os.pyc‘>
>>> myos.getcwd()
‘/home/ydoing/github/autorunner‘

Python之imp模块

标签:python   imp   

原文地址:http://blog.csdn.net/csujiangyu/article/details/45285897

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!