仅当文件不同时如何shutil.copyfile?

How to shutil.copyfile only if file differ?

shutil.copyfile 对于将文件从一个位置复制到另一个位置非常有用。不幸的是,它确实复制了文件,即使它已经存在。

我发现 rsync --checksum 在这种情况下非常方便,但我认为不值得从 Python 调用 rsync

仅当文件不存在或不相同时,我可以使用什么替代方法来复制文件?

您可以使用以下代码:

import os
import filecmp
import shutil

if not os.path.exists(dst) or not filecmp.cmp(src, dst):
    shutil.copyfile(src, dst)