赞
踩
19.1.2 模块类型
Python支持多种类型的模块。打开模块并将其增加到命名空间时,每种类型的模块都需要它自己的处理,另外不同平台对格式的支持也有所不同。例如,在Microsoft Windows下,共享库从扩展名为.dll或.pyd的文件加载,而不是.so。使用解释器的调试(debug)构建版本而不是普通的发行(release)构建版本时,C模块的扩展包也可能改变,因为这些扩展包在编译时可能还包含调试信息。如果一个C扩展库或其他模块不能按预想的那样正常加载,则可以使用importlib.machinery中定义的常量来查找当前平台支持的类型,以及相应的加载参数。
import importlib.machinery SUFFIXES = [ ('Source:',importlib.machinery.SOURCE_SUFFIXES), ('Debug:', importlib.machinery.DEBUG_BYTECODE_SUFFIXES), ('Optimized:', importlib.machinery.OPTIMIZED_BYTECODE_SUFFIXES), ('Bytecode:',importlib.machinery.BYTECODE_SUFFIXES), ('Extension:',importlib.machinery.EXTENSION_SUFFIXES), ] def main(): tmpl = '{:<10} {}' for name,value in SUFFIXES: print(tmpl.format(name,value)) if __name__ == '__main__': main()
返回值是一个元组序列,其中包含文件扩展名,打开文件(包含有模块)所用的模式,以及一个类型码(来自模块中定义的一个常量)。下面的表并不完备,因为有些可导入的模块或包类型并不对应单个文件。
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。