打包成zip檔案
import zipfilef = zipfile.ZipFile('archive.zip','w',zipfile.ZIP_DEFLATED)f.write('file_to_add.py')f.close()
從zip檔案解包
import os,sys import zipfile import reos.chdir('/home/wangyue/brain/geneexpression')all = os.listdir('.')for ii in all: b = re.match('\d+',ii) if b: zfile = ii z = zipfile.ZipFile(zfile, mode='r') os.mkdir('un' + ii) for jj in z.filelist: data = z.read(jj) fd = open('./'+'un'+ii+'/'+jj.filename,'wb') fd.write(data) fd.close()
把整個檔案夾內的檔案打包
import zipfilef = zipfile.ZipFile('archive.zip','w',zipfile.ZIP_DEFLATED)startdir = "c:\\mydirectory"for dirpath, dirnames, filenames in os.walk(startdir): for filename in filenames: f.write(os.path.join(dirpath,filename))f.close()
該程式碼片段來自於: http://www.sharejs.com/codes/python/210
壓縮和解壓縮tar.gz檔案
先是解壓縮
import tarfileimport osdef untar(fname, dirs): t = tarfile.open(fname) t.extractall(path = dirs) if __name__ == "__main__": untar("del.tar.gz", ".")
再是壓縮
import tarfileimport osdef tar(fname): t = tarfile.open(fname + ".tar.gz", "w:gz") for root, dir, files in os.walk(fname): print root, dir, files for file in files: fullpath = os.path.join(root, file) t.add(fullpath) t.close()if __name__ == "__main__": tar("del")
以上引用自
http://www.cnblogs.com/kaituorensheng/p/4493145.html