试图理解我们如何将这两个方面结合起来在本机文件系统中加载资源
打包成压缩文件
我看到下面的例子:import sys
sys.path.insert(0, 'zipimport_example.zip')
import os
import zipimport
importer = zipimport.zipimporter('zipimport_example.zip')
module = importer.load_module('example_package')
print module.__file__
print module.__loader__.get_data('example_package/README.txt')
我认为文件的输出是“zipimport\u example.zip/example\u package/\uu init\uuu.pyc”
需要检查一下里面的样子。
但是我们可以这样做:if ".zip" in example_package.__file__:
...
load using get_data
else:
load by building the correct file path
[编辑:]我试着把这个例子做得更好一些。
如果包作为压缩文件导入,那么会发生两件事__文件路径中包含“.zip”。
__加载程序在名称空间中可用
如果满足这两个条件,则在程序包中可以执行以下操作:print __loader__.get_data(os.path.join('package_name','README.txt'))
否则该模块已正常加载,您可以按照常规方法加载文件。