ZipFile解压文件不改变压缩包内文件修改日期的方法

本文参考http://stackoverflow.com/questions/9813243/extract-files-from-zip-file-and-retain-mod-date-python-2-7-1-on-windows-7

 1 import os
 2 import time
 3 from zipfile import ZipFile
 4  
 5 zf = ZipFile('archive.zip', 'r')
 6 for zi in zf.infolist():
 7     zf.extract(zi)
 8     date_time = time.mktime(zi.date_time + (0, 0, -1))
 9     os.utime(zi.filename, (date_time, date_time))
10 zf.close()

time.mktime()函数执行与gmtime(), localtime()相反的操作,它接收struct_time对象或一个完整的9位元组作为参数,返回用秒数来表示时间的浮点数。

IndexAttributeValues
0tm_year(for example, 1993)
1tm_monrange [1, 12]
2tm_mdayrange [1, 31]
3tm_hourrange [0, 23]
4tm_minrange [0, 59]
5tm_secrange [0, 61]; see (2) in strftime() description
6tm_wdayrange [0, 6], Monday is 0
7tm_ydayrange [1, 366]
8tm_isdst0, 1 or -1; see below

 

 

 

 

 

 

 

上述代码第8行就是构造该元组,(0, 0, -1)分别表示tm_wday,tm_yday,tm_isdst(-1表示夏令时未知)

os.utime(path,(atime, mtime)):将文件的访问和修改时间设为指定值(第二个参数是一个包含两个元素的元组)。

 

 

 

转载于:https://www.cnblogs.com/cygnushan/p/4146293.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值