`
Ydoing
  • 浏览: 106086 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

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'
<script type="text/javascript"> $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('<ul/>').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('<li/>').text(i)); }; $numbering.fadeIn(1700); }); }); </script>

版权声明:本文为博主原创文章,未经博主允许不得转载。

分享到:
评论

相关推荐

    python模块详解

    python模块详解 各个模块的详解 核心模块 1.1. 介绍 1.2. _ _builtin_ _ 模块 1.3. exceptions 模块 1.4. os 模块 1.5. os.path 模块 1.6. stat 模块 1.7. string 模块 1.8. re 模块 1.9. math 模块 1.10....

    (完整word版)教会你所有的Python模块使用.pdf

    或者,如果你就是想交互式的测试这么一个模块,可以用 `imp.reload()` 重新加载。 模块的搜索路径是 Python 寻找模块的目录列表,包括当前目录、环境变量 `PYTHONPATH` 表示的目录列表、Python 默认安装路径等。...

    教会你所有的Python模块的使用总结.pdf

    * 可以使用`imp.reload()`重新加载模块。 模块作为脚本执行 * 模块可以作为脚本执行,使用以下方式运行Python模块时,模块中的代码便会被执行。 * 模块中的代码会被执行,就像导入它一样,不过此时`__name__`被...

    关于python导入模块import与常见的模块详解

    在Python 2中,可以使用reload()函数配合imp模块来实现。而在Python 3中,应当使用importlib模块的reload函数来重新加载模块。 了解并掌握模块的导入和管理是Python程序员的基本技能,对提高开发效率和程序质量都至...

    python根据路径导入模块的方法

    本文实例讲述了python根据路径导入模块的方法,分享给大家供大家参考。具体方法如下: 常规做法如下: import sys sys.path.append('C:/full/path') from foo import util,bar 而要直接通过路径 import imp util...

    教会你所有的Python模块使用.pdf

    模块的导入机制使得代码可以被多次导入但只执行一次,除非使用 `imp.reload()` 重新加载。当模块第一次导入时,其内部的可执行语句(如初始化代码)会被执行一次。模块有自己的全局符号表,确保了模块内的全局变量...

    教会你所有的Python模块使用.doc

    模块的导入机制是Python的核心特性之一。当一个模块首次被导入时,模块中的所有可执行代码(除`if __name__ == "__main__":`下的代码)都会被执行一次。之后,除非使用`imp.reload()`或者在新的Python会话中,模块...

    Python动态导入模块和反射机制详解

    Python动态导入模块和反射机制是Python编程中两种高级特性,它们允许程序在运行时更加灵活地处理代码和数据。动态导入模块是指程序在运行时根据需要动态地加载和使用模块,而不是在程序开始时就静态地导入所有模块。...

    Python重新加载模块的实现方法

    在Python编程中,模块是组织代码的基本单位,通常一个`.py`文件就是一个模块。当我们编写好模块并导入到其他程序中后,如果需要在不重启程序的情况下更新模块内容,就需要用到模块的重新加载功能。这篇文章主要介绍...

    Python中标准模块importlib详解

    在Python 3.x版本中,importlib逐渐取代了较旧的imp模块,因为它提供了更灵活且更强大的功能。 1. **模块简介** importlib模块是Python 3.x的标准库的一部分,用于实现`import`语句的功能。它不仅提供了导入现有...

    PYTHON学习计划.doc

    3. **使用reload重新加载**:如果需要在不重启Python环境的情况下更新已导入模块的内容,可以使用`import imp`导入`imp`模块,并调用`imp.reload()`函数。 示例代码如下: ```python from imp import reload ...

    Python如何重新加载模块

    使用imp.reload()来重新加载先前加载的模块。举个例子: &gt;&gt;&gt; import spam &gt;&gt;&gt; import imp &gt;&gt;&gt; imp.reload(spam) &gt;&gt;&gt; 讨论 重新加载模块在开发和调试过程中常常很有用。但在生产环境中的代码使用会不安全,因为它并...

    python import搜索路径与重新导入

    Python 是一种流行的编程语言,它提供了丰富的模块和函数来帮助开发者快速开发应用程序。其中,Import 机制是 Python 中非常重要的一部分,它允许开发者导入其他模块并使用其中的函数和变量。然而,很多开发者可能不...

    Python动态加载模块的3种方法

    2、使用imp 模块 复制代码 代码如下: import imp stringmodule = imp.load_module(‘string’,*imp.find_module(‘string’)) 3、使用exec 复制代码 代码如下: import_string = “import string as stringmodule” ...

    天天酷跑python版本

    使用Python的pickle模块可以将游戏状态序列化为文件,当玩家下次打开游戏时,可以从上次保存的状态继续。 九、用户界面与得分系统 游戏的用户界面包括显示分数、时间、生命值等信息的文本标签,以及菜单、暂停、...

    Python实现动态加载模块、类、函数的方法分析

    `imp`模块提供了对Python导入机制的底层访问,但由于其设计较早,官方推荐使用更现代的`importlib`模块进行动态加载。 **示例代码**: ```python # 使用importlib import importlib # 动态加载模块 ip_module = ...

Global site tag (gtag.js) - Google Analytics