1.zip
(1)压缩
import os import zipfile import sys import time #class zipfile.ZipFile(file[, mode[, compression[, allowZip64]]]) #创建一个ZipFile对象,表示一个zip文件。参数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。 try: import zlib compression = zipfile.ZIP_DEFLATED except: compression = zipfile.ZIP_STORED path = 'files/' #要进行压缩的文档目录 start = path.rfind(os.sep) + 1 print start filename = 'aa.zip' #压缩后的文件名 z = zipfile.ZipFile(filename,mode = "w",compression = compression) try: for dirpath,dirs,files in os.walk(path): for file in files: if file == filename or file == "zip.py": continue print(file) z_path = os.path.join(dirpath,file) z.write(z_path,z_path[start:]) z.close() except: if z: z.close() (2)解压 filename = 'aa.zip' #要解压的文件 filedir = 'data/' #解压后放入的目录 r = zipfile.is_zipfile(filename) if r: starttime = time.time() fz = zipfile.ZipFile(filename,'r') for file in fz.namelist(): print(file) #打印zip归档中目录 fz.extract(file,filedir) endtime = time.time() times = endtime - starttime else: print('This file is not zip file') print('times' + str(times))