开源 企业版 高校版 私有云 模力方舟 AI 队友
代码拉取完成,页面将自动刷新
捐赠
捐赠前请先登录
扫描微信二维码支付
取消
支付完成
支付提示
将跳转至支付宝完成支付
确定
取消
1 Star 0 Fork 0

source-code-analysis/python3.8.1

加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
已有帐号? 立即登录
文件
master
分支 (1)
master
master
分支 (1)
master
克隆/下载
克隆/下载
提示
下载代码请复制以下命令到终端执行
为确保你提交的代码身份被 Gitee 正确识别,请执行以下命令完成配置
初次使用 SSH 协议进行代码克隆、推送等操作时,需按下述提示完成 SSH 配置
1 生成 RSA 密钥
2 获取 RSA 公钥内容,并配置到 SSH公钥
在 Gitee 上使用 SVN,请访问 使用指南
使用 HTTPS 协议时,命令行会出现如下账号密码验证步骤。基于安全考虑,Gitee 建议 配置并使用私人令牌 替代登录密码进行克隆、推送等操作
Username for 'https://gitee.com': userName
Password for 'https://userName@gitee.com': # 私人令牌
master
分支 (1)
master
python3.8.1
/
Doc
/
library
/
zipimport.rst
python3.8.1
/
Doc
/
library
/
zipimport.rst
zipimport.rst 5.75 KB
一键复制 编辑 原始数据 按行查看 历史
zhangweibo 提交于 2021年11月16日 09:46 +08:00 . git init

:mod:`zipimport` --- Import modules from Zip archives

.. module:: zipimport
 :synopsis: Support for importing Python modules from ZIP archives.

.. moduleauthor:: Just van Rossum <just@letterror.com>

Source code: :source:`Lib/zipimport.py`


This module adds the ability to import Python modules (:file:`\*.py`, :file:`\*.pyc`) and packages from ZIP-format archives. It is usually not needed to use the :mod:`zipimport` module explicitly; it is automatically used by the built-in :keyword:`import` mechanism for :data:`sys.path` items that are paths to ZIP archives.

Typically, :data:`sys.path` is a list of directory names as strings. This module also allows an item of :data:`sys.path` to be a string naming a ZIP file archive. The ZIP archive can contain a subdirectory structure to support package imports, and a path within the archive can be specified to only import from a subdirectory. For example, the path :file:`example.zip/lib/` would only import from the :file:`lib/` subdirectory within the archive.

Any files may be present in the ZIP archive, but only files :file:`.py` and :file:`.pyc` are available for import. ZIP import of dynamic modules (:file:`.pyd`, :file:`.so`) is disallowed. Note that if an archive only contains :file:`.py` files, Python will not attempt to modify the archive by adding the corresponding :file:`.pyc` file, meaning that if a ZIP archive doesn't contain :file:`.pyc` files, importing may be rather slow.

.. versionchanged:: 3.8
 Previously, ZIP archives with an archive comment were not supported.

.. seealso::

 `PKZIP Application Note <https://pkware.cachefly.net/webdocs/casestudies/APPNOTE.TXT>`_
 Documentation on the ZIP file format by Phil Katz, the creator of the format and
 algorithms used.

 :pep:`273` - Import Modules from Zip Archives
 Written by James C. Ahlstrom, who also provided an implementation. Python 2.3
 follows the specification in :pep:`273`, but uses an implementation written by Just
 van Rossum that uses the import hooks described in :pep:`302`.

 :pep:`302` - New Import Hooks
 The PEP to add the import hooks that help this module work.


This module defines an exception:

.. exception:: ZipImportError

 Exception raised by zipimporter objects. It's a subclass of :exc:`ImportError`,
 so it can be caught as :exc:`ImportError`, too.


zipimporter Objects

:class:`zipimporter` is the class for importing ZIP files.

Create a new zipimporter instance. archivepath must be a path to a ZIP file, or to a specific path within a ZIP file. For example, an archivepath of :file:`foo/bar.zip/lib` will look for modules in the :file:`lib` directory inside the ZIP file :file:`foo/bar.zip` (provided that it exists).

:exc:`ZipImportError` is raised if archivepath doesn't point to a valid ZIP archive.

.. method:: find_module(fullname[, path])

 Search for a module specified by *fullname*. *fullname* must be the fully
 qualified (dotted) module name. It returns the zipimporter instance itself
 if the module was found, or :const:`None` if it wasn't. The optional
 *path* argument is ignored---it's there for compatibility with the
 importer protocol.


.. method:: get_code(fullname)

 Return the code object for the specified module. Raise
 :exc:`ZipImportError` if the module couldn't be found.


.. method:: get_data(pathname)

 Return the data associated with *pathname*. Raise :exc:`OSError` if the
 file wasn't found.

 .. versionchanged:: 3.3
 :exc:`IOError` used to be raised instead of :exc:`OSError`.


.. method:: get_filename(fullname)

 Return the value ``__file__`` would be set to if the specified module
 was imported. Raise :exc:`ZipImportError` if the module couldn't be
 found.

 .. versionadded:: 3.1


.. method:: get_source(fullname)

 Return the source code for the specified module. Raise
 :exc:`ZipImportError` if the module couldn't be found, return
 :const:`None` if the archive does contain the module, but has no source
 for it.


.. method:: is_package(fullname)

 Return ``True`` if the module specified by *fullname* is a package. Raise
 :exc:`ZipImportError` if the module couldn't be found.


.. method:: load_module(fullname)

 Load the module specified by *fullname*. *fullname* must be the fully
 qualified (dotted) module name. It returns the imported module, or raises
 :exc:`ZipImportError` if it wasn't found.


.. attribute:: archive

 The file name of the importer's associated ZIP file, without a possible
 subpath.


.. attribute:: prefix

 The subpath within the ZIP file where modules are searched. This is the
 empty string for zipimporter objects which point to the root of the ZIP
 file.

The :attr:`archive` and :attr:`prefix` attributes, when combined with a slash, equal the original archivepath argument given to the :class:`zipimporter` constructor.

Examples

Here is an example that imports a module from a ZIP archive - note that the :mod:`zipimport` module is not explicitly used.

$ unzip -l example.zip
Archive: example.zip
 Length Date Time Name
 -------- ---- ---- ----
 8467 11-26-02 22:30 jwzthreading.py
 -------- -------
 8467 1 file
$ ./python
Python 2.3 (#1, Aug 1 2003, 19:54:32)
>>> import sys
>>> sys.path.insert(0, 'example.zip') # Add .zip file to front of path
>>> import jwzthreading
>>> jwzthreading.__file__
'example.zip/jwzthreading.py'
Loading...
举报
举报成功
我们将于2个工作日内通过站内信反馈结果给你!
请认真填写举报原因,尽可能描述详细。
请选择举报类型
取消
发送
误判申诉

此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。

如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。

取消
提交

简介

取消

发行版

暂无发行版

贡献者

全部

近期动态

不能加载更多了
编辑仓库简介
简介内容
主页
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/python_sourcecode/python3.8.1.git
git@gitee.com:python_sourcecode/python3.8.1.git
python_sourcecode
python3.8.1
python3.8.1
master
点此查找更多帮助

搜索帮助

评论
仓库举报
回到顶部
登录提示
该操作需登录 Gitee 帐号,请先登录后再操作。
立即登录
没有帐号,去注册

AltStyle によって変換されたページ (->オリジナル) /