参考:http://www.cnblogs.com/sislcb/archive/2008/11/28/1342822.html
zipfile - python处理zip文件的压缩与解压
ZipFile()是用来创建和读取zip文件
ZipInfo()是存储的zip文件的每个文件的信息的
E:读取一个zip压缩包里所有文件的名字,z.namelist() 会返回压缩包内所有文件名的列表
import zipfile z = zipfile.ZipFile(filename, 'r') # 这里的第二个参数用r表示是读取zip文件,w是创建一个zip文件 for f in z.namelist():
print f
E:z.infolist()
import zipfile z = zipfile.ZipFile(filename, 'r') for i in z.infolist():
print i.file_size, i.header_offset
z.infolist()它返回的就是压缩包内所有文件的信息,就是一个ZipInfo的列表。
一个ZopInfo对象中包含了压缩包内一个文件的信息,其中比较常用的是 filename, file_size, header_offset, 分别为文件名,文件大小,文件数据在压缩包中的偏移。之前的z.namelist()就是读取的ZopInfo中的filename,组成一个 list返回的。
E:使用ZipFile的read() 解压缩
import zipfile z = zipfile.ZipFile(filename, 'r') print z.read(z.namelist()[0]) #z.namelist()中的第一个文件
E:创建zip压缩包
import zipfile, os z = zipfile.ZipFile(filename, 'w') # 注意这里的第二个参数是w,这里的filename是压缩包的名字 #假设要把一个叫testdir中的文件全部添加到压缩包里(这里只添加一级子目录中的文件):
if os.path.isdir(testdir):
for d in os.listdir(testdir):
z.write(testdir+os.sep+d)
# close() 是必须调用的!
z.close()