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模块详解 各个模块的详解 核心模块 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....
或者,如果你就是想交互式的测试这么一个模块,可以用 `imp.reload()` 重新加载。 模块的搜索路径是 Python 寻找模块的目录列表,包括当前目录、环境变量 `PYTHONPATH` 表示的目录列表、Python 默认安装路径等。...
* 可以使用`imp.reload()`重新加载模块。 模块作为脚本执行 * 模块可以作为脚本执行,使用以下方式运行Python模块时,模块中的代码便会被执行。 * 模块中的代码会被执行,就像导入它一样,不过此时`__name__`被...
在Python 2中,可以使用reload()函数配合imp模块来实现。而在Python 3中,应当使用importlib模块的reload函数来重新加载模块。 了解并掌握模块的导入和管理是Python程序员的基本技能,对提高开发效率和程序质量都至...
本文实例讲述了python根据路径导入模块的方法,分享给大家供大家参考。具体方法如下: 常规做法如下: import sys sys.path.append('C:/full/path') from foo import util,bar 而要直接通过路径 import imp util...
模块的导入机制使得代码可以被多次导入但只执行一次,除非使用 `imp.reload()` 重新加载。当模块第一次导入时,其内部的可执行语句(如初始化代码)会被执行一次。模块有自己的全局符号表,确保了模块内的全局变量...
模块的导入机制是Python的核心特性之一。当一个模块首次被导入时,模块中的所有可执行代码(除`if __name__ == "__main__":`下的代码)都会被执行一次。之后,除非使用`imp.reload()`或者在新的Python会话中,模块...
Python动态导入模块和反射机制是Python编程中两种高级特性,它们允许程序在运行时更加灵活地处理代码和数据。动态导入模块是指程序在运行时根据需要动态地加载和使用模块,而不是在程序开始时就静态地导入所有模块。...
在Python编程中,模块是组织代码的基本单位,通常一个`.py`文件就是一个模块。当我们编写好模块并导入到其他程序中后,如果需要在不重启程序的情况下更新模块内容,就需要用到模块的重新加载功能。这篇文章主要介绍...
在Python 3.x版本中,importlib逐渐取代了较旧的imp模块,因为它提供了更灵活且更强大的功能。 1. **模块简介** importlib模块是Python 3.x的标准库的一部分,用于实现`import`语句的功能。它不仅提供了导入现有...
3. **使用reload重新加载**:如果需要在不重启Python环境的情况下更新已导入模块的内容,可以使用`import imp`导入`imp`模块,并调用`imp.reload()`函数。 示例代码如下: ```python from imp import reload ...
使用imp.reload()来重新加载先前加载的模块。举个例子: >>> import spam >>> import imp >>> imp.reload(spam) >>> 讨论 重新加载模块在开发和调试过程中常常很有用。但在生产环境中的代码使用会不安全,因为它并...
Python 是一种流行的编程语言,它提供了丰富的模块和函数来帮助开发者快速开发应用程序。其中,Import 机制是 Python 中非常重要的一部分,它允许开发者导入其他模块并使用其中的函数和变量。然而,很多开发者可能不...
2、使用imp 模块 复制代码 代码如下: import imp stringmodule = imp.load_module(‘string’,*imp.find_module(‘string’)) 3、使用exec 复制代码 代码如下: import_string = “import string as stringmodule” ...
使用Python的pickle模块可以将游戏状态序列化为文件,当玩家下次打开游戏时,可以从上次保存的状态继续。 九、用户界面与得分系统 游戏的用户界面包括显示分数、时间、生命值等信息的文本标签,以及菜单、暂停、...
`imp`模块提供了对Python导入机制的底层访问,但由于其设计较早,官方推荐使用更现代的`importlib`模块进行动态加载。 **示例代码**: ```python # 使用importlib import importlib # 动态加载模块 ip_module = ...