ziplib用法

ziplib中的函数 is_zipfile (filename) 用来测试filename 是否是zip文件
ziplib中的class ZipFile 用来完成文件的读写等功能,主要函数如下:
  __init__ (filename, mode, compression) //mode 默认的是'r',可选为'w'或'a'
  namelist () //得到文件名列表
  infolist () //得到文件信息列表
  printdir () //打印文件信息列表
  getinfo (name) //得到文件名为name的文件的信息
  read (name) //从zip文件中读出名为name的文件,整个文件作为一个字符串返回
  write (filename, arcname) //向zip文件中添加新的文件filename,添加的文件
                            //在zip文件中重命名为arcname
  close ()   //关闭文件

例子:
#backup and restore
from zipfile import ZipFile, is_zipfile
import sys
import time
def usage ():
    print 'usage:', sys.argv[0], '-options '
    print '     option:'
    print '         -b: backup file'
    print '         -r: resume file'
    print '         -i: show zipfile information'
    print '         -h: show help information'

if len(sys.argv)
del sys.argv[0]
if sys.argv[0] == '-b':
    del sys.argv[0]
    file = ZipFile (time.strftime('%m-%d-%Y.zip'), 'w')
    for i in sys.argv:
        file.write (i)
        print 'file', i, 'zip into file...'
    file.close ()
elif sys.argv[0] == '-r':
    del sys.argv[0]
    for i in sys.argv:
        if not is_zipfile (i):
            print 'file', i, 'is not a zipfile.'
            continue
        file = ZipFile (i)
        namelist = file.namelist ()
        for k in namelist:
            l = read (k)
            f = file (k, 'w')
            f.write (l)
            f.close ()
            print 'file', k, 'resume'
        file.close()
        print 'ZipFile', file, 'extractive success'
elif sys.argv[0] == '-i':
    del sys.argv[0]
    for i in sys.argv:
        if not is_zipfile (i):
            print 'file', i, 'is not a zipfile.'
            continue
        file = ZipFile (i)
        print 'ZipFile', i
        file.printdir ()
        file.close()
else:
    usage()