从简单的角度来看的话,zip格式会是个不错的选择,而且python对zip格式的支持够简单,够好用。zip文件格式信息一个 ZIP 文件由三个部分组成:压缩源文件数据区+压缩源文件目录区+压缩源文件目录结束标志 1)压缩源文件数据区,在这个数据区中每一个压缩的源文件/目录都是一条记录,记录的格式如下: [文件头+ 文件数据 + 数据描述符] 2)压缩源文件目录区,在这个数据区中每一条纪录对应在压缩源文件数据区中的一条数据,如果你仅仅是希望用python来做压缩和解压缩,那么就不用去翻文档了,这里提供一个简单的用法,让你一看就能明白。
# -*- coding: gbk -*-
#zipfile模块
#读取或写入ZIP压缩包
#读取ZIP压缩包的文件列表
import zipfile
import os
import glob
file = zipfile.ZipFile("zipfile_module.zip", "r")
print '''列出文件'''
for name in file.namelist():
print name
print '''列出文件信息'''
for info in file.infolist():
print info.filename,"文件名"
print info.date_time,"修改时间"
print info.file_size,"大小"
print info.compress_type,"压缩级别"
print info.compress_size ,"压缩数据大小"
print info.file_size,"未压缩文件大小"
for i in range(1, 10):
print ""
print '''解压操作 unzip'''
for name in file.namelist():
file.extract(name,os.getcwd()+"/zipfile_module") #解压到当前目录
#关闭压缩文件句柄
file.close()
print '''压缩操作 zip'''
#获取当前目录树
fileLists=[]
for root,dirs,files in os.walk("zipfile_module"):
for name in dirs:
fileLists.append(os.path.join(root, name)) #目录入列表
for name in files:
fileLists.append(os.path.join(root,name)) #文件入列表
#创建压缩文件
file2=zipfile.ZipFile(os.getcwd()+"/zipfile_module2"+".zip",'w',zipfile.ZIP_DEFLATED) #zipfile.zlib.DEFLATED 亦可
#写入目录树
for name in fileLists:
file2.write(name)
#关闭压缩文件
file2.close()