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

标签 python zip extraction

我正在尝试使用 Python 2.7.1(在 Windows 上,仅供引用)从 zip 文件中提取文件,我的每次尝试都显示提取的文件的修改日期 = 提取时间(这是不正确的)。

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)

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

我想这是可能的,而不必根据 How do I change the file creation date of a Windows file? 对修改后的时间进行后更正。 .

最佳答案

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

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))

好吧,也许它那么糟糕。

关于python - 从 zip 文件中提取文件并保留修改日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48055318/

相关文章:

python - 如何使用 Python 通过 XMPP 传输文件?

python - 使用来自 python 的 XML POST flask 服务器

python - 检查 PyObjects C 类型

extraction - 是否可以使用 Mahout 进行术语提取?

regex - 从带有附加条件的字符串中提取8位数字

python - 从数据框中完全消除行索引及其行

ios - 如何在文件管理器中快速读取json文件?

java - FileOutputStream zip 文件打开错误 : "File cannot be opened as an archive"

php - 从 zip 内的目录中删除文件

opencv - 特征提取和分类