zipimport
标准导入会自动使用该模块来处理.zip
sys.path元素.
是否可以添加钩子来支持其他文件类型?例如一个处理程序.tar.gz
?
例如,如果sys.path包含/path/to/archive.tar.gz
或者/path/to/archive.xyz
可以提供处理程序来打开和读取.tar.gz
或.xyz
文件.
是的,有两种方法可以做到这一点:
__builtin__.__import__()
使用您自己的自定义实现覆盖该函数。这是完全覆盖关键字功能的低级方法import
,不建议一般使用。sys.meta_path
,或者添加一个将此类查找器返回到的可调用对象sys.path_hooks
。查找器在 Python 3 中比在 Python 2 中更容易实现,因为 3.x 在importlib
. 但是,它们也可以在 Python 2 中实现(您只需编写更多代码)。一般来说,无论 2.x 还是 3.x,(2) 都比 (1) 容易得多。(1) 仅建议作为最后的手段。有关 (2) 的更多信息,请参阅PEP 302。
归档时间: |
|
查看次数: |
86 次 |
最近记录: |