一图看懂 zipfile 模块:处理压缩和解压缩文件, 资料整理+笔记(大全)

本文由 大侠(AhcaoZhu)原创,转载请声明。
链接: https://blog.csdn.net/Ahcao2008

Alt

一图看懂 zipfile 模块:处理压缩和解压缩文件, 资料整理+笔记(大全)

摘要

全文介绍系统内置 zipfile 模块、函数、类及类的方法和属性。
它通过代码抓取并经AI智能翻译和人工校对。
是一部不可多得的权威字典类工具书。它是系列集的一部分。后续陆续发布、敬请关注。【原创:AhcaoZhu大侠】

模块图

zipfile-module

zipfile
	◆io
	◆os
	◆importlib
	◆sys
	◆time
	◆stat
	◆shutil
	◆struct
	◆binascii
	◆threading
	zlib
	bz2
	lzma

类关系图

zipfile-class

◆object
	◆BaseException
		◆Exception
			_lzma.LZMAError
			zipfile.BadZipFile
			zipfile.LargeZipFile
			zlib.error
	◆_bz2.BZ2Compressor
	◆_bz2.BZ2Decompressor
	◆_io._IOBase
		◆_io._BufferedIOBase
			◆io.BufferedIOBase
				◆_compression.BaseStream
					bz2.BZ2File
					lzma.LZMAFile
				zipfile.ZipExtFile
				zipfile._ZipWriteFile
	_lzma.LZMACompressor
	_lzma.LZMADecompressor
	zipfile.LZMACompressor
	zipfile.LZMADecompressor
	zipfile.ZipFile
		zipfile.PyZipFile
	zipfile.ZipInfo
	zipfile._SharedFile
	zipfile._Tellable

模块全展开

【zipfile】

zipfile, fullname=zipfile, file=zipfile.py

读写ZIP文件。
XXX对utf-8的引用需要进一步调查。

统计

序号 类别 数量
1 int 69
4 str 9
6 list 1
8 dict 2
9 module 13
10 class 13
11 function 11
12 builtin_function_or_method 1
13 residual 10
14 system 9
15 private 66
16 all 129

常量

int

1 ZIP64_LIMIT 2147483647
2 ZIP_FILECOUNT_LIMIT 65535
3 ZIP_MAX_COMMENT 65535
4 ZIP_STORED 0
5 ZIP_DEFLATED 8
6 ZIP_BZIP2 12
7 ZIP_LZMA 14
8 DEFAULT_VERSION 20
9 ZIP64_VERSION 45
10 BZIP2_VERSION 46
11 LZMA_VERSION 63
12 MAX_EXTRACT_VERSION 63
13 sizeEndCentDir 22
14 _ECD_SIGNATURE 0
15 _ECD_DISK_NUMBER 1
16 _ECD_DISK_START 2
17 _ECD_ENTRIES_THIS_DISK 3
18 _ECD_ENTRIES_TOTAL 4
19 _ECD_SIZE 5
20 _ECD_OFFSET 6
21 _ECD_COMMENT_SIZE 7
22 _ECD_COMMENT 8
23 _ECD_LOCATION 9
24 sizeCentralDir 46
25 _CD_SIGNATURE 0
26 _CD_CREATE_VERSION 1
27 _CD_CREATE_SYSTEM 2
28 _CD_EXTRACT_VERSION 3
29 _CD_EXTRACT_SYSTEM 4
30 _CD_FLAG_BITS 5
31 _CD_COMPRESS_TYPE 6
32 _CD_TIME 7
33 _CD_DATE 8
34 _CD_CRC 9
35 _CD_COMPRESSED_SIZE 10
36 _CD_UNCOMPRESSED_SIZE 11
37 _CD_FILENAME_LENGTH 12
38 _CD_EXTRA_FIELD_LENGTH 13
39 _CD_COMMENT_LENGTH 14
40 _CD_DISK_NUMBER_START 15
41 _CD_INTERNAL_FILE_ATTRIBUTES 16
42 _CD_EXTERNAL_FILE_ATTRIBUTES 17
43 _CD_LOCAL_HEADER_OFFSET 18
44 sizeFileHeader 30
45 _FH_SIGNATURE 0
46 _FH_EXTRACT_VERSION 1
47 _FH_EXTRACT_SYSTEM 2
48 _FH_GENERAL_PURPOSE_FLAG_BITS 3
49 _FH_COMPRESSION_METHOD 4
50 _FH_LAST_MOD_TIME 5
51 _FH_LAST_MOD_DATE 6
52 _FH_CRC 7
53 _FH_COMPRESSED_SIZE 8
54 _FH_UNCOMPRESSED_SIZE 9
55 _FH_FILENAME_LENGTH 10
56 _FH_EXTRA_FIELD_LENGTH 11
57 sizeEndCentDir64Locator 20
58 sizeEndCentDir64 56
59 _CD64_SIGNATURE 0
60 _CD64_DIRECTORY_RECSIZE 1
61 _CD64_CREATE_VERSION 2
62 _CD64_EXTRACT_VERSION 3
63 _CD64_DISK_NUMBER 4
64 _CD64_DISK_NUMBER_START 5
65 _CD64_NUMBER_ENTRIES_THIS_DISK 6
66 _CD64_NUMBER_ENTRIES_TOTAL 7
67 _CD64_DIRECTORY_SIZE 8
68 _CD64_OFFSET_START_CENTDIR 9
69 _DD_SIGNATURE 134695760

str

70 structCentralDir <4s4B4HL2L5H2L
71 structFileHeader <4s2B4HL2L2H
72 structEndArchive64Locator <4sLQL
73 structEndArchive64 <4sQ2H2L4Q

dict

74 compressor_names {0: ‘store’, 1: ‘shrink’, 2: ‘reduce’, 3: ‘reduce’, 4: ‘reduce’, 5: ‘reduce’, 6: ‘implode’, 7: ‘tokenize’, 8: ‘deflate’,…

模块

75 io

io, fullname=io, file=io.py

76 os

os, fullname=os, file=os.py

77 importlib

importlib, fullname=importlib, file=importlib_init_.py

导入的纯Python实现。

78 sys

sys, fullname=sys, file=

79 time

time, fullname=time, file=

80 stat

stat, fullname=stat, file=stat.py

81 shutil

shutil, fullname=shutil, file=shutil.py

82 struct

struct, fullname=struct, file=struct.py

83 binascii

binascii, fullname=binascii, file=

二进制数据和ASCII之间的转换

84 threading

threading, fullname=threading, file=threading.py

线程模块,模拟Java线程模型的子集。

85 zlib

zlib, fullname=zlib, file=

此模块中的函数允许使用基于GNU zip的zlib库进行压缩和解压缩。
    adler32(string[, start]) -- 计算adler32校验和。
    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()。

86 bz2

bz2, fullname=bz2, file=bz2.py

到libbzip2压缩库的接口。
该模块提供了一个文件接口、用于增量压缩(解压缩)的类以及用于一次性压缩(解压缩)的函数。

87 lzma

lzma, fullname=lzma, file=lzma.py

到liblzma压缩库的接口。
这个模块提供了一个用于读写压缩文件的类,用于增量压缩(解压缩)的类,以及用于一次性压缩(解压缩)的方便函数。
这些类和函数同时支持XZ和遗留的LZMA容器格式,以及原始压缩数据流。

函数

88 _strip_extra(extra, xids)

_strip_extra(extra, xids), module=zipfile, line:166 at zipfile.py

89 _check_zipfile(fp)

_check_zipfile(fp), module=zipfile, line:185 at zipfile.py

90 is_zipfile(filename)

is_zipfile(filename), module=zipfile, line:193 at zipfile.py

通过检查magic数字,快速查看文件是否是ZIP文件。
filename参数也可以是一个文件或类文件对象。

91 _EndRecData64(fpin, offset, endrec)

_EndRecData64(fpin, offset, endrec), module=zipfile, line:209 at zipfile.py

读取ZIP64归档结束记录并使用它来更新endrec

92 _EndRecData(fpin)

_EndRecData(fpin), module=zipfile, line:252 at zipfile.py

从“中央目录终止符”记录返回数据或None。
数据是ZIP“End of central dir”中9项的列表
记录后面跟着第十项,该文件求该记录的偏移量。

93 _gen_crc(crc)

_gen_crc(crc), module=zipfile, line:550 at zipfile.py

94 _ZipDecrypter(pwd)

_ZipDecrypter(pwd), module=zipfile, line:566 at zipfile.py

95 _check_compression(compression)

_check_compression(compression), module=zipfile, line:675 at zipfile.py

96 _get_compressor(compress_type, compresslevel=None)

_get_compressor(compress_type, compresslevel=None), module=zipfile, line:694 at zipfile.py

97 _get_decompressor(compress_type)

_get_decompressor(compress_type), module=zipfile, line:710 at zipfile.py

98 main(args=None)

main(args=None), module=zipfile, line:2116 at zipfile.py

99 zipfile.BadZipFile

BadZipFile, zipfile.BadZipFile, module=zipfile, line:0 at

100 zipfile.LargeZipFile

LargeZipFile, zipfile.LargeZipFile, module=zipfile, line:0 at

在编写zip文件时引发,该zipfile需要ZIP64扩展名,而这些扩展名已被禁用。

101 zipfile.BadZipFile

BadZipFile, zipfile.BadZipFile, module=zipfile, line:0 at

102 zipfile.BadZipFile

BadZipFile, zipfile.BadZipFile, module=zipfile, line:0 at

103 zipfile.ZipInfo

ZipInfo, zipfile.ZipInfo, module=zipfile, line:0 at

类,其属性描述ZIP归档中的每个文件。
data

1 CRC=<member ‘CRC’ of ‘ZipInfo’ objects> kind:data type:member_descriptor class:<class ‘zipfile.ZipInfo’>
2 comment=<member ‘comment’ of ‘ZipInfo’ objects> kind:data type:member_descriptor class:<class ‘zipfile.ZipInfo’>
3 compress_size=<member ‘compress_size’ of ‘ZipInfo’ objects> kind:data type:member_descriptor class:<class ‘zipfile.ZipInfo’>
4 compress_type=<member ‘compress_type’ of ‘ZipInfo’ objects> kind:data type:member_descriptor class:<class ‘zipfile.ZipInfo’>
5 create_system=<member ‘create_system’ of ‘ZipInfo’ objects> kind:data type:member_descriptor class:<class ‘zipfile.ZipInfo’>
6 create_version=<member ‘create_version’ of ‘ZipInfo’ objects> kind:data type:member_descriptor class:<class ‘zipfile.ZipInfo’>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AhcaoZhu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值