非常教程

Python参考手册

输入 | Importing

zipimport

2.3版本的新功能。

该模块增加了从ZIP格式档案中导入Python模块(*.py*.py[co])和软件包的功能。通常不需要zipimport明确使用该模块; 内置import机制会自动使用它作为sys.pathZIP归档路径的项目。

通常,sys.path是作为字符串的目录名称列表。该模块还允许将一个项目sys.path作为一个命名ZIP文件存档的字符串。ZIP归档文件可以包含一个子目录结构以支持包导入,并且归档中的路径可以被指定为仅从子目录导入。例如,路径example.zip/lib/只能从lib/存档中的子目录导入。

任何文件可能存在于ZIP压缩文件,但只有文件.py.py[co]可供导入。动态模块(.pyd.so)的ZIP导入是不允许的。请注意,如果归档仅包含.py的文件,Python将不会试图通过增加相应的修改该文件.pyc.pyo文件,这意味着如果一个ZIP压缩文件不包含.pyc文件,进口可能会相当缓慢。

reload()如果调用从ZIP压缩文件加载的模块,则使用内置函数将失败; 这是不太可能的reload(),因为这意味着ZIP在运行时被改变了。

目前不支持带归档评论的ZIP归档。

另请参阅

PKZIP应用说明由Phil Katz 撰写的关于ZIP文件格式的文件,它是所使用的格式和算法的创建者。 PEP 273 - 从Zip档案导入模块James C. Ahlstrom撰写,他也提供了一个实现。Python 2.3遵循PEP 273中的规范,但使用Just van Rossum编写的使用PEP 302中描述的导入钩子的实现 。PEP 302 - 新导入钩子PEP添加有助于此模块工作的导入钩子。

该模块定义了一个例外:

exception zipimport.ZipImportError

zipimporter对象引发异常。这是它的一个子类ImportError,所以它也可以被捕获ImportError

1. zipimporter对象

zipimporter 是导入ZIP文件的类。

class zipimport.zipimporter(archivepath)

创建一个新的zipimporter实例。archivepath必须是ZIP文件的路径,或ZIP文件中的特定路径。例如,archivepathfoo/bar.zip/lib将查找模块在libZIP文件内的目录foo/bar.zip(假设它存在)。

ZipImportError如果archivepath未指向有效的ZIP存档,则会引发此问题。

find_module(fullname[, path])

搜索由全名指定的模块。完整名称必须是完全限定的(虚线)模块名称。它返回zipimporter实例本身,如果找到该模块,或者None它不是。可选的路径参数被忽略 - 它在那里与进口协议兼容。

get_code(fullname)

返回指定模块的代码对象。ZipImportError如果找不到该模块,请升级。

get_data(pathname)

返回与路径名关联的数据。提高IOError如果没有找到该文件。

get_filename(fullname)

__file__如果指定的模块被导入,返回值将被设置为。ZipImportError如果找不到该模块,请升级。

2.7版本的新功能。

get_source(fullname)

返回指定模块的源代码。ZipImportError如果找不到该模块,None则进行提升,如果存档确实包含该模块,则返回,但没有来源。

is_package(fullname)

返回True如果由指定的模块全名是一个包。ZipImportError如果找不到该模块,请升级。

load_module(fullname)

加载由全名指定的模块。完整名称必须是完全限定的(虚线)模块名称。它返回导入的模块,或者ZipImportError如果找不到则引发。

archive

导入程序的关联ZIP文件的文件名,没有可能的子路径。

prefix

ZIP文件中用于搜索模块的子路径。这是zipimporter对象的空字符串,它指向ZIP文件的根目录。

当与斜线组合时,archiveprefix属性等于给予构造函数的原始归档路径参数zipimporter

2.例子

这里是一个从ZIP压缩文件导入模块的例子 - 注意zipimport模块没有明确使用。

$ 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'
Python

Python 是一种面向对象的解释型计算机程序设计语言,由荷兰人 Guido van Rossum 于1989年发明,第一个公开发行版发行于1991年。 Python 是纯粹的自由软件, 源代码和解释器 CPython 遵循 GPL 协议。Python 语法简洁清晰,特色之一是强制用空白符( white space )作为语句缩进。

主页 https://www.python.org/
源码 https://github.com/python/cpython
版本 2.7
发布版本 2.7.13

Python目录

1.内置常量 | Built-in Constants
2.内置例外 | Built-in Exceptions
3.内置函数 | Built-in Functions
4.内置类型 | Built-in Types
5.编译器 | Compiler
6.加密 | Cryptography
7.数据压缩 | Data Compression
8.数据持久性 | Data Persistence
9.数据类型 | Data Types
10.调试和分析 | Debugging & Profiling
11.开发工具 | Development Tools
12.文件和目录访问 | File & Directory Access
13.文件格式 | File Formats
14.构架 | Frameworks
15.输入 | Importing
16.输入/输出 | Input/ouput
17.国际化 | Internationalization
18.网络 | Internet
19.网络数据 | Internet Data
20.翻译 | Interpreters
21.语言 | Language
22.记录 | Logging
23.Mac OS
24.MS Windows
25.多媒体 | Multimedia
26.联网 | Networking
27.数字与数学 | Numeric & Mathematical
28.操作系统 | Operating System
29.可选操作系统 | Optional Operating System
30.限制执行 | Restricted Execution
31.运行 | Runtime
32.SGI IRIX
33.软件包装与分销 | Software Packaging & Distribution
34.字符串 | String
35.结构化标记 | Structured Markup
36.Tk
37.Unix
38.Python 简介
39.Python pass 语句
40.Python 循环嵌套
41.Python 运算符
42.Python log10() 函数
43.Python log() 函数
44.Python floor() 函数
45.Python fabs() 函数
46.Python exp() 函数
47.Python cmp() 函数
48.Python ceil() 函数
49.Python abs() 函数
50.Python Number(数字)
51.Python pow() 函数
52.Python modf() 函数
53.Python min() 函数
54.Python max() 函数
55.Python asin() 函数
56.Python acos() 函数
57.Python uniform() 函数
58.Python shuffle() 函数
59.Python seed() 函数
60.Python random() 函数
61.Python randrange() 函数
62.Python choice() 函数
63.Python sqrt() 函数
64.Python round() 函数
65.Python radians() 函数
66.Python degrees() 函数
67.Python tan() 函数
68.Python sin() 函数
69.Python hypot() 函数
70.Python cos() 函数
71.Python atan2() 函数
72.Python atan() 函数
73.Python 元组
74.Python 列表(List)
75.Python 字符串
76.Python 字典(Dictionary)
77.Python 日期和时间
78.Python 函数
79.Python 模块
80.Python capitalize()方法
81.Python center()方法
82.Python count() 方法
83.Python expandtabs()方法
84.Python endswith()方法
85.Python encode()方法
86.Python decode()方法
87.Python find()方法
88.Python index()方法
89.Python 异常处理
90.Python isspace()方法
91.Python isnumeric()方法
92.Python islower()方法
93.Python isdigit()方法
94.Python isalpha()方法
95.Python isalnum()方法
96.Python isupper()方法
97.Python istitle()方法
98.Python min()方法
99.Python max()方法
100.Python maketrans()方法