本文由 大侠(AhcaoZhu)原创,转载请声明。
链接: https://blog.csdn.net/Ahcao2008
全文介绍系统内置 gzip 模块、函数、类及类的方法和属性。
它通过代码抓取并经AI智能翻译和人工校对。
是一部不可多得的权威字典类工具书。它是系列集的一部分。后续陆续发布、敬请关注。【原创:AhcaoZhu大侠】
gzip
◆struct
◆sys
◆time
◆os
◆io
◆builtins
zlib
_compression
◆object
◆BaseException
◆Exception
◆struct.error
◆zlib.error
◆Struct
◆_io._IOBase
◆_io._BufferedIOBase
◆_io.BufferedRWPair
◆_io.BufferedRandom
◆_io.BufferedReader
◆_io.BufferedWriter
◆_io.BytesIO
◆io.BufferedIOBase
_compression.BaseStream
gzip.GzipFile
◆_io._RawIOBase
◆_io.FileIO
◆_io._WindowsConsoleIO
◆io.RawIOBase
_compression.DecompressReader
gzip._GzipReader
gzip._PaddedFile
◆zip
- 备注:采用省略描述。
gzip, fullname=gzip, file=gzip.py
读取和写入gzip文件的函数。
文件的用户不必担心压缩,但不允许随机访问。
序号 | 类别 | 数量 |
---|---|---|
1 | int | 10 |
4 | str | 5 |
6 | list | 1 |
8 | dict | 1 |
9 | module | 8 |
10 | class | 3 |
11 | function | 5 |
13 | residual | 2 |
14 | system | 9 |
15 | private | 7 |
16 | all | 35 |
1 FTEXT 1
2 FHCRC 2
3 FEXTRA 4
4 FNAME 8
5 FCOMMENT 16
6 READ 1
7 WRITE 2
8 _COMPRESS_LEVEL_FAST 1
9 _COMPRESS_LEVEL_TRADEOFF 6
10 _COMPRESS_LEVEL_BEST 9
struct, fullname=struct, file=struct.py
sys, fullname=sys, file=
time, fullname=time, file=
os, fullname=os, file=os.py
zlib, fullname=zlib, file=
此模块中的函数允许使用基于GNU zip的zlib库进行压缩和解压缩。
adler32(string[, start]) -- 计算Adler-32校验和。
compress(data[, level]) -- 压缩数据,压缩级别为0-9或-1。
compressobj([level[, ...]]) -- 返回压缩对象。
crc32(string[, start]) -- 计算CRC-32校验和。
decompress(string,[wbits],[bufsize]) -- 解压缩字符串。
decompressobj([wbits[, zdict]]]) -- 返回一个解压器对象。
'wbits' 是窗口缓冲区大小和容器格式。
压缩器对象支持compress()和flush()方法;
解压器对象支持decompress()和flush()。
builtins, fullname=builtins, file=
io, fullname=io, file=io.py
_compression, fullname=_compression, file=_compression.py
gzip, lzma和bz2模块使用的内部类
open(filename, mode=‘rb’, compresslevel=9, encoding=None, errors=None, newline=None), module=gzip, line:25 at gzip.py
以二进制或文本方式打开gzip压缩文件。
filename参数可以是一个实际的文件名(str或bytes对象),也可以是一个可供读取或写入的现有文件对象。
mode参数可以是“r”,“rb”,“w”,“wb”,“x”,“xb”,“a”或“ab”,用于二进制模式,或“rt”,“wt”,“xt”或“at”。默认模式为“rb”,默认压缩级别为9。
对于二进制模式,这个函数等价于GzipFile构造函数:
GzipFile(filename, mode, compresslevel)。
在这种情况下,编码、错误和换行参数必须不提供。
对于文本模式,将创建一个GzipFile对象,并将其包装在io.TextIOWrapper实例,使用指定的编码、错误处理行为和行结束。
write32u(output, value), module=gzip, line:69 at gzip.py
compress(data, compresslevel=9), module=gzip, line:529 at gzip.py
一次性压缩数据并返回压缩后的字符串。
可选参数是压缩级别,范围为0-9。
decompress(data), module=gzip, line:538 at gzip.py
一次性解压缩gzip压缩字符串。
返回解压后的字符串。
_test(), module=gzip, line:546 at gzip.py
_PaddedFile, gzip._PaddedFile, module=gzip, line:0 at
最小的只读文件对象,在实际文件的内容前加上字符串。
不应该在gzip.py之外使用,因为它缺乏基本功能。
1 prepend(self, prepend=b’')
kind=method class=_PaddedFile objtype=function line:98 at …\gzip.py
2 read(self, size)
kind=method class=_PaddedFile objtype=function line:85 at …\gzip.py
3 seek(self, off)
kind=method class=_PaddedFile objtype=function line:107 at …\gzip.py
4 seekable(self)
kind=method class=_PaddedFile objtype=function line:112 at …\gzip.py
GzipFile, gzip.GzipFile, module=gzip, line:0 at
GzipFile类模拟文件对象的大多数方法,但truncate()方法除外。
该类仅支持以二进制模式打开文件。
如果需要以文本模式打开压缩文件,请使用gzip.open()函数。
1 myfileobj=None kind:data type:NoneType class:
2 closed=
kind:property type:property class:
3 filename=kind:property type:property class:
4 mtime=kind:property type:property class:
5 close(self)
kind=method class=GzipFile objtype=function line:313 at …\gzip.py
6 fileno(self)
kind=method class=GzipFile objtype=function line:339 at …\gzip.py
调用底层文件对象的fileno()方法。
如果底层文件对象不支持fileno(),这将引发AttributeError。
7 flush(self,zlib_mode=zlib.Z_SYNC_FLUSH)
kind=method class=GzipFile objtype=function line:332 at …\gzip.py
8 peek(self, n)
kind=method class=GzipFile objtype=function line:302 at …\gzip.py
9 read(self, size=-1)
kind=method class=GzipFile objtype=function line:282 at …\gzip.py
10 read1(self, size=-1)
kind=method class=GzipFile objtype=function line:289 at …\gzip.py
实现BufferedIOBase.read1()
当size为负时,读取缓冲区的数据值。
11 readable(self)
kind=method class=GzipFile objtype=function line:354 at …\gzip.py
12 readline(self, size=-1)
kind=method class=GzipFile objtype=function line:383 at …\gzip.py
13 rewind(self)
kind=method class=GzipFile objtype=function line:347 at …\gzip.py
将未压缩的流文件位置指示符返回到文件的开头
14 seek(self, offset, whence=io.SEEK_SET)
kind=method class=GzipFile objtype=function line:363 at …\gzip.py
15 seekable(self)
kind=method class=GzipFile objtype=function line:360 at …\gzip.py
16 writable(self)
kind=method class=GzipFile objtype=function line:357 at …\gzip.py
17 write(self,data)
kind=method class=GzipFile objtype=function line:258 at …\gzip.py
_GzipReader, gzip._GzipReader, module=gzip, line:0 at
1 read(self, size=-1)
kind=method class=_GzipReader objtype=function line:449 at …\gzip.py
27 _compression
28 _COMPRESS_LEVEL_FAST 1
29 _COMPRESS_LEVEL_TRADEOFF 6
30 _COMPRESS_LEVEL_BEST 9
31 _PaddedFile
32 _GzipReader
33 _test
struct, fullname=struct, file=struct.py
sys, fullname=sys, file=
time, fullname=time, file=
os, fullname=os, file=os.py
zlib, fullname=zlib, file=
此模块中的函数允许使用基于GNU zip的zlib库进行压缩和解压缩。
adler32(string[, start]) -- 计算Adler-32校验和。
compress(data[, level]) -- 压缩数据,压缩级别为0-9或-1。
compressobj([level[, ...]]) -- 返回压缩对象。
crc32(string[, start]) -- 计算CRC-32校验和。
decompress(string,[wbits],[bufsize]) -- 解压缩字符串。
decompressobj([wbits[, zdict]]]) -- 返回一个解压器对象。
'wbits' 是窗口缓冲区大小和容器格式。
压缩器对象支持compress()和flush()方法;
解压器对象支持decompress()和flush()。
序号 | 类别 | 数量 |
---|---|---|
1 | int | 20 |
4 | str | 6 |
10 | class | 2 |
12 | builtin_function_or_method | 6 |
13 | residual | 1 |
14 | system | 6 |
16 | all | 35 |
1 MAX_WBITS 15
2 DEFLATED 8
3 DEF_MEM_LEVEL 8
4 DEF_BUF_SIZE 16384
5 Z_NO_COMPRESSION 0
6 Z_BEST_SPEED 1
7 Z_BEST_COMPRESSION 9
8 Z_DEFAULT_COMPRESSION -1
9 Z_FILTERED 1
10 Z_HUFFMAN_ONLY 2
11 Z_RLE 3
12 Z_FIXED 4
13 Z_DEFAULT_STRATEGY 0
14 Z_NO_FLUSH 0
15 Z_PARTIAL_FLUSH 1
16 Z_SYNC_FLUSH 2
17 Z_FULL_FLUSH 3
18 Z_FINISH 4
19 Z_BLOCK 5
20 Z_TREES 6
21 ZLIB_VERSION 1.2.11
22 ZLIB_RUNTIME_VERSION 1.2.11
error, zlib.error, module=zlib, line:0 at
24 adler32
25 compress
26 compressobj
27 crc32
28 decompress
29 decompressobj
builtins, fullname=builtins, file=
io, fullname=io, file=io.py
_compression, fullname=_compression, file=_compression.py
gzip, lzma和bz2模块使用的内部类
序号 | 类别 | 数量 |
---|---|---|
1 | int | 1 |
4 | str | 5 |
8 | dict | 1 |
9 | module | 1 |
10 | class | 2 |
13 | residual | 2 |
14 | system | 8 |
16 | all | 12 |
1 BUFFER_SIZE 8192
io, fullname=io, file=io.py
BaseStream, _compression.BaseStream, module=_compression, line:0 at
模式检查助手函数。
DecompressReader, _compression.DecompressReader, module=_compression, line:0 at
将解压器API适配为RawIOBase读取器API
1 close(self)
kind=method class=DecompressReader objtype=function line:59 at …_compression.py
2 read(self, size=-1)
kind=method class=DecompressReader objtype=function line:72 at …_compression.py
3 readable(self)
kind=method class=DecompressReader objtype=function line:36 at …_compression.py
4 readinto(self, b)
kind=method class=DecompressReader objtype=function line:66 at …_compression.py
5 seek(self, offset, whence=io.SEEK_SET)
kind=method class=DecompressReader objtype=function line:120 at …_compression.py
6 seekable(self)
kind=method class=DecompressReader objtype=function line:63 at …_compression.py
7 tell(self)
kind=method class=DecompressReader objtype=function line:150 at …_compression.py
返回当前文件位置。
def _test():
# 像gzip一样;使用-d,就像gunzip一样。
# 但是,输入文件不会被删除,也不支持任何其他gzip选项或特性
args = sys.argv[1:]
decompress = args and args[0] == "-d"
if decompress:
args = args[1:]
if not args:
args = ["-"]
for arg in args:
if decompress:
if arg == "-":
f = GzipFile(filename="", mode="rb", fileobj=sys.stdin.buffer)
g = sys.stdout.buffer
else:
if arg[-3:] != ".gz":
print("filename doesn't end in .gz:", repr(arg))
continue
f = open(arg, "rb")
g = builtins.open(arg[:-3], "wb")
else:
if arg == "-":
f = sys.stdin.buffer
g = GzipFile(filename="", mode="wb", fileobj=sys.stdout.buffer)
else:
f = builtins.open(arg, "rb")
g = open(arg + ".gz", "wb")
while True:
chunk = f.read(1024)
if not chunk:
break
g.write(chunk)
if g is not sys.stdout.buffer:
g.close()
if f is not sys.stdin.buffer:
f.close()