我尝试过用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()另一个版本:
zf = zipfile.ZipFile(fn)
for name in zf.namelist():
source = zf.open(name)
target = open(os.path.join(filepath, filename), "wb")
with source, target:
shutil.copyfileobj(source, target)我还在python中调用了winzip,它可以工作,但很烦人。它会打开很多窗口资源管理器窗口。
发布于 2013-11-22 00:02:25
在Python中没有通用的方法来设置文件的创建时间,但是您可以使用os.utime来设置修改和访问时间。
在Windows文件系统上,您可以使用win32file指定创建文件的时间。详情请参见this answer。
在Linux文件系统上,并没有真正的“创建日期”,只有inode的上次修改时间戳。要对此进行编辑,您需要修改文件系统本身(在卸载时),更改系统时间或修改内核以允许编辑inode。This answer展示了后两者的解决方案。
在Mac上,你可以调用setfile -d来更改创建日期,不过你必须先安装它。你可以找到its docs here。
不确定BSD或其他操作系统。
https://stackoverflow.com/questions/16865861
复制相似问题