zipfile模块

ZipFile实现解压缩

import zipfile
# 加载压缩文件,创建ZipFile对象
# class zipfile.ZipFile(file[, mode[, compression[, allowZip64]]])
# 参数file表示文件的路径或类文件对象(file-like object)
# 参数mode指示打开zip文件的模式,默认值为'r',表示读已经存在的zip文件,也可以为'w'或'a',
# 'w'表示新建一个zip文档或覆盖一个已经存在的zip文档,'a'表示将数据附加到一个现存的zip文档中
# 参数compression表示在写zip文档时使用的压缩方法,它的值可以是zipfile. ZIP_STORED 或zipfile. ZIP_DEFLATED。
# 如果要操作的zip文件大小超过2G,应该将allowZip64设置为True。
file_dir = '1.zip'
zipFile = zipfile.ZipFile(file_dir,mode="r", compression=zipfile.ZIP_STORED, allowZip64=True)  #加载zip文件

print(zipFile.infolist())                        #返回一个zipfile.ZipInfo的列表
print(zipFile.getinfo('1.txt'))                  #返回具体的ZipInfo
print(zipFile.namelist())                        #返回一个文件名称列表                               
print(zipFile.printdir())                        #打印所有文件列表信息到控制台
print(zipFile.filename)                          #打印zip文件名称
zipFile.testzip()                                #返回第一个损坏的文件名称,否则返回none


for file in zipFile.namelist():
    zipFile.extract(file, path=None,pwd=None)                     #解压文件到当前
zipFile.extractall(path=None, members=None, pwd=None)             #解压全部文件
zipFile.close()

file_dir='2.zip'
with zipfile.ZipFile(file_dir,mode="x", compression=zipfile.ZIP_STORED, allowZip64=True) as myzip:
    myzip.write('1.txt',arcname=None, compress_type=None)         #压缩文件

file_dir='3.zip'
with zipfile.ZipFile(file_dir) as myzip:
    with myzip.open('1.txt', mode='r', pwd=None, force_zip64=False) as myfile: #打开文件
        print(myfile.read())                                                   #读取文件

命令行方式

python -m zipfile -c monty.zip spam.txt eggs.txt    # -c指定zip文件名称 文件列表
python -m zipfile -c monty.zip life-of-brian_1979/  #压缩一个目录
python -m zipfile -e monty.zip target-dir/          #-e解压缩到指定目录
python -m zipfile -l monty.zip                      #zip文件列表


-l -list 列出一个 zipfile 中的文件名
-c -create 基于源文件创建 zipfile
-e -extract 将 zipfile 提取到目标目录中
-t -test 检测 zipfile 是否有效

 

posted @ 2022-05-31 16:43  wuyuan2011woaini  阅读(65)  评论(0编辑  收藏  举报