python文件压缩zipfile和tarfile模块
第一部分,zipfile模块
zipfile模块的操作方式与文件操作方式相似。
例1:
 
zipfile.ZipFile(filename,mode,compression,allowZip64)
    filename:zip文件名
    mode:和文件的操作一样,r表示读,a表示打开zip文件王里面添加内容,w表示写(必要时就创建)。
     compression:表示压缩格式,默认为ZIP_STORED表示只打包不开启压缩功能类似于tar,ZIP_DEFLATED   表示开启压缩(开启压缩必须指定)
     allowZip64:表示是否支持64位压缩,默认值为False表示不支持64位压缩,压缩文件不能大于2G,如果压缩文件大于2G的话必须指定allowZip64=True
zipfile.close() :关闭压缩文件
zipfile.write(filename[, arcname[,compress_type]])
     acrname是压缩文件中该文件的名字,默认情况下和filename一样
     compress_type的存在是因为zip文件允许被压缩的文件可以有不同的压缩类型。
2、解压缩文件
zipfile.extractall([path[, member[,password]]])
     path解压缩目录,没什么可说的
     member需要解压缩的文件名列表
     password当zip文件有密码时需要该选项
zipfile.is_zipfile(filename):判断一个文件是不是压缩文件
ZipFile.namelist():返回文件列表
ZipFile.getinfo(name)和ZipFile.infolist():
  infolist方法返回的是一个ZipInfo对象列表
  getinfo方法只返回一个ZipInfo对象,表示zip文档中相应文件的信息。
ZipInfo的属性:
 
例子2:
 
第二部分,tarfile模块
 
例子:
 
import os,os.path
import tarfile
def tardir(dirname,tarfilename):
   filelist=[]
   if os.path.isfile(dirname):
       filelist.append(dirname)
   else:
       for root,dirs,file in os.walk(dirname):
           for name in file:
               filelist.append(os.path.join(root,name))
#'w:bz2'是指写bz2压缩包,如果是gz包的话就用'w:gz'
   tf = tarfile.open(tarfilename,'w:bz2')
   for tar in filelist:
       arcname = tar[len(dirname):]
       print arcname
       tf.add(tar,arcname)#往tar.bz2压缩文档里面写文件相当于zipfile.write()
   tf.close()
tardir(r'C:UsersAdministratorDesktopp2psearcher3.5',r'C:z.tar.bz2')
以上通过实例介绍了zipfile和tarfile模块的用法,希望对大家有所帮助。