1 __author__ = 'Zechary' 2 3 import os, os.path 4 import zipfile 5 6 def zip_dir(dirname, zipname): 7 filelist = [] 8 if os.path.isfile(dirname): 9 filelist.append(dirname) 10 else: 11 for root, dirs, files in os.walk(dirname): 12 for name in files: 13 filelist.append(os.path.join(root, name)) 14 15 zf = zipfile.ZipFile(zipname, "w", zipfile.zlib.DEFLATED) 16 for tar in filelist: 17 zf.write(tar) 18 zf.close() 19 20 def unzip_file(zipfilename, unziptodir): 21 if not os.path.exists(unziptodir): 22 os.mkdir(unziptodir, 0777) 23 zfobj = zipfile.ZipFile(zipfilename) 24 for name in zfobj.namelist(): 25 name = name.replace('\', '/') 26 if name.endswith('/'): 27 os.mkdir(os.path.join(unziptodir, name)) 28 else: 29 ext_filename = os.path.join(unziptodir, name) 30 ext_dir = os.path.dirname(ext_filename) 31 if not os.path.exists(ext_dir): 32 os.mkdir(ext_dir, 0777) 33 outfile = open(ext_filename, 'wb') 34 outfile.write(zfobj.read(name)) 35 outfile.close() 36 37 if __name__ == "__main__": 38 zip_dir('D:pythontest', 'D:pythontest.zip') 39 unzip_file('D:\pythontest.zip', 'D:\pythontest111')