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 是否有效
天道酬勤 循序渐进 技压群雄