gpt4 book ai didi

python - python 'import' 可以扩展到 zip 以外的其他存档类型吗?

转载 作者:太空狗 更新时间:2023-10-30 00:16:17 25 4
gpt4 key购买 nike

标准导入自动使用 zipimport 模块来处理 .zip sys.path 元素。

是否可以添加 Hook 以支持其他文件类型?例如 .tar.gz?

的处理程序

例如,如果 sys.path 包含 /path/to/archive.tar.gz/path/to/archive.xyz 处理程序可以提供给打开并阅读 .tar.gz.xyz 文件。

最佳答案

是的,有两种方法可以做到这一点:

  1. 覆盖__builtin__.__import__()使用您自己的自定义实现功能。这是一种完全覆盖 import 关键字功能的低级方法,不建议一般使用。
  2. 添加 finder反对sys.meta_path它实现了所需的功能,或者添加一个将这样的查找器返回到 sys.path_hooks 的可调用对象. Finders 在 Python 3 中比在 Python 2 中更容易实现,因为 3.x 在 importlib 中提供了大量构建 block 。 .但是,它们也可以在 Python 2 中实现(您只需编写更多代码)。

一般来说,无论 2.x 还是 3.x,(2) 都比 (1) 容易得多。 (1) 仅建议作为最后的手段。有关 (2) 的更多信息,请参阅 PEP 302 .

关于python - python 'import' 可以扩展到 zip 以外的其他存档类型吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44724530/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com