在副本上保留文件属性

时间:2013-07-16 19:20:05

标签: python file-attributes

我有这种情况,我希望将原始属性保留在文件上(文件创建日期等)。通常,当您在Windows中复制文件时,您创建的副本将获得新的“修改”日期等。我已经通过shutil.copy命令 - 虽然这不会使文件属性保持不变。

我找到了following question on Stack Unix,但我想知道我是否有办法在Python中执行此操作。

1 个答案:

答案 0 :(得分:23)

如果查看shutil的文档,您会立即找到copy2函数,即:

  

copy()相同,但copy2()也会尝试保留所有文件元数据。

在Python的最新版本中,有一大堆函数可以单独执行这些操作 - copycopymodecopystat - 但是如果你只想复制一切,copy2尽一切可能。

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

  

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

如果您确实需要包含这些内容,则需要访问Win32 API(最简单的方法是通过pywin32)。但你没有。