28

我有一种情况,我想将原始属性保留在文件上(文件创建日期等)。通常,当您在 Windows 中复制文件时,您制作的副本会获得新的“修改”日期等。我遇到了这个shutil.copy命令——尽管这不会保持文件属性相同。

我在 Stack Unix 上找到了以下问题,但我想知道是否有办法在 Python 中做到这一点。

4

1 回答 1

48

如果您查看 的文档shutil,您会立即找到该copy2功能,即:

copy()除了copy2()也尝试保留所有文件元数据之外,其他相同。

在最近的 Python 版本中,有一大堆函数可以单独完成这些工作——<code>copy, copymode, copystat——但如果你只想复制所有内容,请copy2尽一切可能。

正如文档顶部的警告所说,“一切可能”并不意味着一切,但它确实包括日期和其他属性。尤其是:

在 Windows 上,不会复制文件所有者、ACL 和备用数据流。

如果你真的需要包含这些东西,你将需要访问 Win32 API(通过pywin32最容易做到)。但你没有。

于 2013-07-16T19:22:54.553 回答