Commit 8abf0a90 authored by Georg Brandl's avatar Georg Brandl

#1559684: document that shutil.copy* doesn't copy all metadata on Posix and Windows too.

parent 6497afed
...@@ -18,15 +18,20 @@ copying and removal. For operations on individual files, see also the ...@@ -18,15 +18,20 @@ copying and removal. For operations on individual files, see also the
.. warning:: .. warning::
On MacOS, the resource fork and other metadata are not used. For file copies, Even the higher-level file copying functions (:func:`copy`, :func:`copy2`)
this means that resources will be lost and file type and creator codes will can't copy all file metadata.
not be correct.
On POSIX platforms, this means that file owner and group are lost as well
as ACLs. On MacOS, the resource fork and other metadata are not used.
This means that resources will be lost and file type and creator codes will
not be correct. On Windows, file owners, ACLs and alternate data streams
are not copied.
.. function:: copyfile(src, dst) .. function:: copyfile(src, dst)
Copy the contents of the file named *src* to a file named *dst*. The Copy the contents (no metadata) of the file named *src* to a file named *dst*.
destination location must be writable; otherwise, an :exc:`IOError` exception The destination location must be writable; otherwise, an :exc:`IOError` exception
will be raised. If *dst* already exists, it will be replaced. Special files will be raised. If *dst* already exists, it will be replaced. Special files
such as character or block devices and pipes cannot be copied with this such as character or block devices and pipes cannot be copied with this
function. *src* and *dst* are path names given as strings. function. *src* and *dst* are path names given as strings.
...@@ -114,7 +119,7 @@ copying and removal. For operations on individual files, see also the ...@@ -114,7 +119,7 @@ copying and removal. For operations on individual files, see also the
Recursively move a file or directory to another location. Recursively move a file or directory to another location.
If the destination is on our current filesystem, then simply use rename. If the destination is on the current filesystem, then simply use rename.
Otherwise, copy src to the dst and then remove src. Otherwise, copy src to the dst and then remove src.
.. versionadded:: 2.3 .. versionadded:: 2.3
...@@ -122,7 +127,7 @@ copying and removal. For operations on individual files, see also the ...@@ -122,7 +127,7 @@ copying and removal. For operations on individual files, see also the
.. exception:: Error .. exception:: Error
This exception collects exceptions that raised during a mult-file operation. For This exception collects exceptions that raised during a multi-file operation. For
:func:`copytree`, the exception argument is a list of 3-tuples (*srcname*, :func:`copytree`, the exception argument is a list of 3-tuples (*srcname*,
*dstname*, *exception*). *dstname*, *exception*).
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment