xylz,imxylz

关注后端架构、中间件、分布式和并发编程

   :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  111 随笔 :: 10 文章 :: 2680 评论 :: 0 Trackbacks
9-21.

ZIP Archive Files. Create a program that can extract files from or add files to, and perhaps creating, a ZIP archive file.

#!/usr/bin/env python
#
-*- coding:utf-8 -*-
#
$Id: p0921.py 167 2010-06-29 06:03:11Z xylz $

'''
This is a 'python' study plan for xylz.
Copyright (C)2010 xylz (www.imxylz.info)
'''

import zipfile
import os

def compress (zip_file,files):
    
print "compress %s files to %s" % (len(files),zip_file)
    f_mode 
= 'a' if os.path.exist(zip_file) else 'w'
    f_out 
= zipfile.ZipFile(zip_file, f_mode) 
    in_size 
= 0
    
for f  in files:
        f_out.write(f)
        in_size 
+= os.path.getsize(f)
    f_out.close()

    out_size 
= os.path.getsize(zip_file)
    
print "source size %d bytes, target size %d bytes, %d%%" % (in_size,out_size,(out_size*100/in_size))
        
def decompress (zip_file,dstdir,files='*'):
    
print "decompress %s  to %s" % (zip_file,dstdir)
    f_in 
= zipfile.ZipFile(zip_file,'r')
    
if files == '*':
        f_in.extractall(dstdir)
    
else:
        
for f in files:
            f_in.extract(f,dstdir)
            
print "extract file",f
    f_in.close()

        
        

if __name__ == '__main__':
    
import sys
    
if len(sys.argv)<4 or ('c'!= sys.argv[1and 'x'!= sys.argv[1and 'a'!= sys.argv[1]):
        
print "Usage: %s c <zipfile> <srcfile>.." % (sys.argv[0],)
        
print "Usage: %s a <zipfile> <srcfile>.." % (sys.argv[0],)
        
print "Usage: %s x <zipfile> <destdir> [srcfile].." % (sys.argv[0],)
        sys.exit(0)
    zip_file 
= sys.argv[2]
    
    
if 'c' == sys.argv[1or 'a' == sys.argv[1]:
        src_files 
= []
        
for f in sys.argv[3:]:
            src_files.append(f)
        compress(zip_file,src_files)
    
    
else:
        dst_dir 
= sys.argv[3]
        files 
= '*'
        
if len(sys.argv)>4:
            files 
= []
            
for f in sys.argv[4:]:
                files.append(f)
        decompress (zip_file,dst_dir,files)
        
        
    


©2009-2014 IMXYLZ |求贤若渴
posted on 2010-06-29 14:05 imxylz 阅读(16652) 评论(0)  编辑  收藏 所属分类: Python

只有注册用户登录后才能发表评论。


网站导航:
 

©2009-2014 IMXYLZ