从zip文件中提取文件并保留修改日期?

我正在尝试使用Python 2.7.1(在Windows上,fyi)从zip文件中提取文件,而我的每一次尝试都显示了具有Modified Date

=提取时间的提取文件(不正确)。

import os,zipfile

outDirectory = 'C:\\_TEMP\\'

inFile = 'test.zip'

fh = open(os.path.join(outDirectory,inFile),'rb')

z = zipfile.ZipFile(fh)

for name in z.namelist():

z.extract(name,outDirectory)

fh.close()

我也尝试使用.extractall方法,结果相同。

import os,zipfile

outDirectory = 'C:\\_TEMP\\'

inFile = 'test.zip'

zFile = zipfile.ZipFile(os.path.join(outDirectory,inFile))

zFile.extractall(outDirectory)

谁能告诉我我在做什么错?

我想认为这是可能的,而不必重新校正每个[Windows文件的文件创建日期?](http://codingdict.com/questions/161992。

回答:

好吧,这确实需要一些后期处理,但是还不错:

import os

import zipfile

import time

outDirectory = 'C:\\TEMP\\'

inFile = 'test.zip'

fh = open(os.path.join(outDirectory,inFile),'rb')

z = zipfile.ZipFile(fh)

for f in z.infolist():

name, date_time = f.filename, f.date_time

name = os.path.join(outDirectory, name)

with open(name, 'wb') as outFile:

outFile.write(z.open(f).read())

date_time = time.mktime(date_time + (0, 0, -1))

os.utime(name, (date_time, date_time))

好吧,也许 那么糟糕。

以上是 从zip文件中提取文件并保留修改日期? 的全部内容, 来源链接: utcz.com/qa/398340.html

回到顶部