import zipfile_ownimport osimport timeimport zipfile_comimport zipfiledef gen_file(file_path): fs = open(file_path, 'r') while 1: trunk = fs.read(1024*8) left = len(trunk) if left == 0 : break yield trunk#def read(it): def file_wss(dic): pos = 0 count = 0 pos_s = 0 for root,dirs,files in os.walk(dic): for file in files: file_path = os.path.join(root,file) st = os.stat(file_path) mtime = time.localtime(st.st_mtime) size = st.st_size it = gen_file(file_path) iterator = archive.write_wss(it, size, mtime, pos_s, file_path) #read(iterator) for i in iterator: yield i pos_s = len(i) + pos_s #yield iterator #count = count + 1 pos = (30+12)*count + size +len(file_path) iterator = archive.close_wss(pos_s) #read(iterator) for i in iterator: yield i #yield iterator #return iterator def file_wss_r(dic): pos = 0 count = 0 pos_s = 0 for root,dirs,files in os.walk(dic): for file in files: file_path = os.path.join(root,file) archive.write(file_path) archive = zipfile_own.ZipFile('ab.zip','w',zipfile_own.ZIP_STORED)file_content = file_wss('tett')fs_f = open('test.zip', 'wb')for item in file_content: fs_f.write(item) fs_f.close()archive = zipfile_com.ZipFile('out.zip','w',zipfile_com.ZIP_STORED)file_content = file_wss_r('tett')archive.close()