How do I copy a file in Python?
shutil has many methods you can use. One of which is:
from shutil import copyfilecopyfile(src, dst)# 2nd optioncopy(src, dst) # dst can be a folder; use copy2() to preserve timestamp
- Copy the contents of the file named
srcto a file named
dstneed to be the entire filename of the files, including path.
- The destination location must be writable; otherwise, an
IOErrorexception will be raised.
dstalready exists, it will be replaced.
- Special files such as character or block devices and pipes cannot be copied with this function.
dstare path names given as
shutil method to look at is
shutil.copy2(). It's similar but preserves more metadata (e.g. time stamps).
If you use
os.path operations, use
copy rather than
copyfile will only accept strings.
- it allows
dstto be a directory (instead of the complete target filename), in which case the basename of
srcis used for creating the new file;
- it preserves the original modification and access info (mtime and atime) in the file metadata (however, this comes with a slight overhead).
Here is a short example:
import shutilshutil.copy2('/src/dir/file.ext', '/dst/dir/newname.ext') # complete target filename givenshutil.copy2('/src/file.ext', '/dst/dir') # target filename is /dst/dir/file.ext