# -*- coding=gbk -*-
import zipfile

def UnZip(path, patht):
    #path 为需要解压的文件路径,patht为解压的目标目录
    f = zipfile.ZipFile(path, 'r')
    print "开始解压文件..."
    for file in f.namelist():
        print "正在解压文件:%s to %s" %(file, patht)
        f.extract(file, patht)

   windows下python使用上面的代码解压zip文件,发现解压之后会把文件的最后修改时间统统修改为解压的时间,虽然在使用上并没有什么影响,但是看起来总觉得怪怪的....翻了好久模块资料实在没找出模块里哪个地方能加个参数保留文件最后修改日期的,最后用笨办法写了个!算是勉强完成了保留最后修改日期的功能,代码如下:

# -*- coding=gbk -*-
import zipfile
def UnZipNew(path, patht):
    #path 为需要解压的文件路径,patht为解压的目标目录
    print "开始执行解压函数"
    f = zipfile.ZipFile(path, 'r')    
    for file in f.infolist():
        d = file.date_time
        gettime = "%s/%s/%s %s:%s" % (d[0], d[1], d[2], d[3], d[4])
        f.extract(file, patht)
        filep = os.path.join(patht, file.filename)
        print "恢复文件:%s的最后修改时间" % filep
        timearry = time.mktime(time.strptime(gettime, '%Y/%m/%d %H:%M'))
        os.utime(filep, (timearry, timearry))