9

shutil.copyfile is quite useful for copying files from a location to another. Unfortunately, it does copy the file even though it already exists.

I find rsync --checksum quite convenient in this case, but I don't think it worth calling rsync from Python.

What alternative can I use to copy a file only if it does not exist or it is not the same?

nowox
  • 25,978
  • 39
  • 143
  • 293

1 Answers1

15

You can use the following code:

import os
import filecmp
import shutil

if not os.path.exists(dst) or not filecmp.cmp(src, dst):
    shutil.copyfile(src, dst)
taras
  • 6,566
  • 10
  • 39
  • 50