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()