我有一种情况,我想将原始属性保留在文件上(文件创建日期等)。通常,当您在 Windows 中复制文件时,您制作的副本会获得新的“修改”日期等。我遇到了这个shutil.copy
命令——尽管这不会保持文件属性相同。
我在 Stack Unix 上找到了以下问题,但我想知道是否有办法在 Python 中做到这一点。
我有一种情况,我想将原始属性保留在文件上(文件创建日期等)。通常,当您在 Windows 中复制文件时,您制作的副本会获得新的“修改”日期等。我遇到了这个shutil.copy
命令——尽管这不会保持文件属性相同。
我在 Stack Unix 上找到了以下问题,但我想知道是否有办法在 Python 中做到这一点。
如果您查看 的文档shutil
,您会立即找到该copy2
功能,即:
copy()
除了copy2()
也尝试保留所有文件元数据之外,其他相同。
在最近的 Python 版本中,有一大堆函数可以单独完成这些工作——<code>copy, copymode
, copystat
——但如果你只想复制所有内容,请copy2
尽一切可能。
正如文档顶部的警告所说,“一切可能”并不意味着一切,但它确实包括日期和其他属性。尤其是:
在 Windows 上,不会复制文件所有者、ACL 和备用数据流。
如果你真的需要包含这些东西,你将需要访问 Win32 API(通过pywin32最容易做到)。但你没有。