打包成zip文件
import zipfile
f = zipfile.ZipFile('archive.zip','w',zipfile.ZIP_DEFLATED)
f.write('file_to_add.py')
f.close()
從zip文件解包
import os,sys
import zipfile
import re
os.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 zipfile
f = 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 tarfile
import os
def untar(fname, dirs):
t = tarfile.open(fname)
t.extractall(path = dirs)
if __name__ == "__main__":
untar("del.tar.gz", ".")
再是壓縮
import tarfile
import os
def 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")
以上引用自