免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2240 | 回复: 0
打印 上一主题 下一主题

ziplib用法 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-02-20 21:18 |只看该作者 |倒序浏览
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()            
               
      
   



本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/13878/showart_76735.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP