從簡單的角度來看的話,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()