根据http://docs.python.org/library/shutil.html使用这些方法不会复制元数据,包括所有权、ACL 和资源分支。使用基本文件读取方法打开文件并将其逐行写回重复文件是否可以保持文件元数据完整?我的猜测是肯定的。目标磁盘的格式必须与源磁盘的格式相同才能保持完整吗?我的猜测是否定的。 我浏览了一下,没有看到任何具体的内容。我想使用 python 将 3 台运行不同操作系统的不同计算机备份到一个中心位置。重要的是,所复制的文件是相同的,就好像我可以替换原始文件并且看不到任何差异一样。感谢您的任何见解!
最佳答案
我有一个类似的问题,我必须保留 UNIX 文件系统上的所有者和组信息。这些只是整数,但 Shutil.copy2 不保留它们。尽管您是跨系统复制,但您只需修改代码以将元数据存储在某处,然后在完成复制后应用它。
import os
import shutil
import stat
def CopyMinusP(src, dest):
file_stat = os.stat(src)
owner = file_stat[stat.ST_UID]
group = file_stat[stat.ST_GID]
print "Owner: %d Group: %d" % (owner, group) # for diagnostics
shutil.copy2(src, dest)
os.chown(dest, owner, group)
关于python 复制带有元数据的文件,shutil 与手动打开和写入重复文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11888001/