Zip模块

ZIP模块#

压缩模块的动作应该是 打包 -> 压缩

构造#

def __init__(self, file, mode="r", compression=ZIP_STORED, allowZip64=True,
                 compresslevel=None, *, strict_timestamps=True):
    
#功能:创建一个ZipFile对象,表示一个zip文件.
#参数:
"""
    -参数file表示文件的路径或类文件对象(file-like object)
    -参数mode指示打开zip文件的模式,默认值为r
        r    表示读取已经存在的zip文件
        w    表示新建一个zip文档或覆盖一个已经存在的zip文档
        a    表示将数据追加到一个现存的zip文档中。
    -参数compression表示在写zip文档时使用的压缩方法
        zipfile.ZIP_STORED      只是存储模式,不会对文件进行压缩,这个是默认值
        zipfile.ZIP_DEFLATED    对文件进行压缩 
    -如果要操作的zip文件大小超过2G,应该将allowZip64设置为True 默认。
"""

创建压缩包#

zf = zipfile.ZipFile("ceshi111.zip","w",  zipfile.ZIP_DEFLATED)

写入文件#

'''write(路径,zf.close()别名)'''
zf.write("/bin/bash","bash")
zf.write("/bin/bunzip2","bunzip2")
zf.write("/bin/cat","tmp/cat")

追加压缩文件#

zf = zipfile.ZipFile("ceshi111.zip","a", zipfile.ZIP_DEFLATED)
zf.write("/bin/chmod","chmod")
zf.close()

关闭文件#

zf.close()

解压文件#

zf = zipfile.ZipFile("ceshi111.zip","r")

#解压的文件  解压到的位置是路径

# 解压单个文件
"""extract(文件,路径)"""
# zf.extract("bash","ceshi111") 

# 解压所有文件
"""extract(路径)"""
zf.extractall("ceshi222")
zf.close()

with简化#

# 用with来简化操作
with zipfile.ZipFile("ceshi111.zip","a", zipfile.ZIP_DEFLATED) as zf:
	zf.write("/bin/chmod","chmod123456")

# 查看文件
with zipfile.ZipFile("ceshi111.zip","r") as zf:
	lst = zf.namelist()	#返回名称列表
	print(lst)
posted @   江寒雨  阅读(22)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示
主题色彩