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

2023-12-09

我正在尝试使用 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)

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

我想这是可能的,而不必事后更正每个修改时间如何更改 Windows 文件的文件创建日期?.


嗯,它确实需要一些后期处理,但也没有那么糟糕:

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

好吧,也许是这样is那么不好。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 zip 文件中提取文件并保留 mod 日期? 的相关文章

随机推荐

  • 水平 UIButton 中的垂直文本

    我在纵向应用程序中使用垂直 UIButton 只是一个宽度为 60 高度为 160 的普通按钮 我想将标签垂直放置在按钮下方而不是横跨按钮 当我使用以下代码旋转标签时 workPackageButton titleLabel setTran
  • DispatchQueue.sync 与 DispatchQueue.async 之间的区别

    我试图理解 Dispatch Sync 和 Dispatch Async 我知道它以 GCD 的同步和异步方式执行 但是当我尝试下面的代码时 它给了我奇怪的场景 我在 Playground 中测试了下面的代码 同步块执行了 3 次 异步块给
  • 如何便携式地打开大文件支持?

    我目前正在编写一个 C 程序 该程序可以读取和写入大小可能超过 2 GiB 的文件 在Linux上功能测试宏 7 规定 LARGEFILE64 SOURCE Expose definitions for the alternative AP
  • 如何使用 REST API 下载 Parse.com 文件类型?

    Parse com REST API 文档列出了与 Parse com 数据交互的多种方式 例如上传和下载类 它还描述了上传文件 但它没有提到如何从 Parse com 下载文件 有谁知道这是否可能 如果可以 该怎么做 Parse com
  • WCF 耐用服务是正确的选择吗?

    我们正在选择在 WCF 会话 调用之间保存状态的最佳方法 我们发现WCF耐用服务适合我们的需要 我们想知道这对于大量使用是否可以 我们预计有 1000 多个会话 每个会话将保存大约 100KB 的数据 xml 序列化格式 并保存复杂的对象
  • 使用延迟形状数组从 C 调用 Fortran

    是否可以从 C C 调用 Fortran 子例程 其中 Fortran 参数之一是延迟形状数组 希望我正确使用了术语 延迟形状 在下面的例子中 subr1 使用显式形状 并且工作正常 但是subr2 使用延迟形状并导致段错误 这个问题表示需
  • 如何将 PHP 数组表示为逗号分隔的字符串? [复制]

    这个问题在这里已经有答案了 可能的重复 PHP MYSQL 在 WHERE 子句中使用数组 我有一个 ID 值为 1 5 2 6 7 的数组 我需要在 MySQL item id IN 1 5 2 6 7 语句中使用它来仅选择具有数组中列出
  • “this”是否指的是调用此函数的元素?

    在下面的代码片段中我使用 this 引用调用该函数的元素 我知道这是不正确的 因为我打印了这些值 它给了我 未定义 如何引用输入元素 function datepicker datepicker onSelect function date
  • 如何像“netstat -p”一样但更快?

    netstat p 和 lsof n i P 似乎都读取链接所有进程 fd 例如stat proc fd 怎样做才能更有效率呢 我的程序想知道哪个进程正在连接到它 一次又一次地遍历所有流程似乎效率太低 建议 iptables 或内核补丁的方
  • 引导网格与折叠容器之间

    这是我的第一个问题 我希望你能帮助我 我正在尝试使用引导网格设置产品概述页面 我已经连续购买了 4 款大屏幕产品 对于较小的屏幕尺寸 我希望每行有 2 个产品 诀窍是 我想将产品详细信息放在行之间的折叠容器中 当我单击产品时 该容器会打开
  • 多处理打印语句在 Spyder IDE 中不起作用

    在运行 Windows Server 2012 R2 的计算机上 在 Anaconda 的 Spyder IDE 中并使用以下代码运行 Python 3 7 import time import multiprocessing start
  • 使用 pyqtgraph 绘图而不显示

    我正在尝试从 matplotlib 转向使用 pyqtgraph 进行绘图 因为它具有更快地渲染和保存图像的能力 当我尝试在具有多处理器的集群上执行此操作时 我遇到了以下问题 QStandardPaths XDG RUNTIME DIR未设
  • 在 Android 上设置 MonkeyRunner

    我想使用 MonkeyRunner 我有一个 Monkeyrunner jar 并将其导入到我的项目中 我现在该如何使用它 你能告诉我我应该一步一步做什么吗 我在 python 上看到了一些代码片段 但我不明白如何在 eclipse 中使用
  • 无法使用spark从s3存储桶读取

    val spark SparkSession builder appName try1 master local getOrCreate val df spark read json s3n BUCKET NAME FOLDER FILE
  • iOS 7 更改 UINavigationBar titleView alpha

    所以我使用iOS7的UINavigationBar组件 而不是UINavigationController本身 当我使用自定义导航控制器推送新视图时 我想将标题的 alpha 更改为 0 0 然后再更改回来 但我似乎无法让它工作 我正在尝试
  • Android 以编程方式向应用程序添加小部件警告消息

    我创建了一个测试 Android 启动器应用程序 并将其作为系统应用程序安装在已 root 的设备上 该应用程序的目标是将所有已安装的小部件放置在视图页面的片段上 这已经成功完成 但是 每次显示新页面时都会向用户显示一条消息 即使用户选中该
  • 日历班级时间月份不匹配

    Calendar c Calendar getInstance System out println Mili gt gt c getTimeInMillis System out println Month gt gt Calendar
  • 是否可以重置 ServicePointManager?

    我正在尝试遵循类似于给出的代码System Net Mail SMTPClient如何进行本地IP绑定我在具有多个 IP 地址的计算机上使用 Windows 7 和 Net 4 0 我有绑定IPEndPointDelegate定义的 pri
  • Android Realm - 从服务访问 Realm 对象

    我有一个在我的活动中创建的领域对象 我需要能够在我创建的服务中访问该对象 但是 我在服务中创建 Realm 对象时收到错误 mRealm Realm getInstance getApplicationContext java lang I
  • 从 zip 文件中提取文件并保留 mod 日期?

    我正在尝试使用 Python 2 7 1 在 Windows 上 仅供参考 从 zip 文件中提取文件 并且我的每次尝试都显示提取的文件的修改日期 提取时间 这是不正确的 import os zipfile outDirectory C T