用python解压文件,但不要更改tim创建的文件

2024-09-30 10:33:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试过多种使用Python解压文件的方法,但是每种方法都以错误的创建时间结束(因为Python创建了该文件的新副本,而不是真正从压缩文件中提取)。例如,在2012年12月21日创建的文件在使用Python提取时将显示今天的创建日期,但是如果使用其他东西(如WinZip),则文件创建时间不会更改。在

有没有一种方法可以在不改变创建时间的情况下使用Python解压文件?在

@Jason Sperske,这是我使用的代码:

   zf = zipfile.ZipFile(fn)
   for name in zf.namelist():
        filename = os.path.basename(name)
        zf.extract(name, filepath)
    zf.close()

另一个版本:

^{pr2}$

我还从python内部调用了winzip,它可以工作,但很烦人。它打开了许多窗口,探索窗口。在


Tags: 文件方法代码name错误时间副本情况
1条回答
网友
1楼 · 发布于 2024-09-30 10:33:24

在Python中没有通用的方法来设置文件的创建时间,但是可以使用os.utime来设置修改和访问时间。在

在Windows文件系统上,可以使用win32file来指定创建文件的时间。有关详细信息,请参见this answer。在

在Linux文件系统上,实际上并没有这样的“创建日期”,只有inode的最后修改时间戳。要编辑它,您需要修改文件系统本身(卸载时)、更改系统时间或修改内核以允许编辑inode。This answer显示后两者的解决方案。在

在Mac上,您可以调用setfile -d来更改创建日期,但必须先安装它。你可以找到its docs here。在

不确定BSD或其他操作系统。在

相关问题 更多 >

    热门问题