diff options
-rw-r--r-- | Doc/lib/libshutil.tex | 16 | ||||
-rw-r--r-- | Lib/shutil.py | 3 |
2 files changed, 14 insertions, 5 deletions
diff --git a/Doc/lib/libshutil.tex b/Doc/lib/libshutil.tex index 5dd1b6c..a217150 100644 --- a/Doc/lib/libshutil.tex +++ b/Doc/lib/libshutil.tex @@ -67,8 +67,10 @@ file type and creator codes will not be correct. \begin{funcdesc}{copytree}{src, dst\optional{, symlinks}} Recursively copy an entire directory tree rooted at \var{src}. The destination directory, named by \var{dst}, must not already exist; - it will be created. Individual files are copied using - \function{copy2()}. If \var{symlinks} is true, symbolic links in + it will be created as well as missing parent directories. + Permissions and times of directories are copied with \function{copystat()}, + individual files are copied using \function{copy2()}. + If \var{symlinks} is true, symbolic links in the source tree are represented as symbolic links in the new tree; if false or omitted, the contents of the linked files are copied to the new tree. If exception(s) occur, an Error is raised @@ -76,8 +78,14 @@ file type and creator codes will not be correct. The source code for this should be considered an example rather than a tool. -\versionchanged[Error is raised if any exceptions occur during copying, -rather than printing a message]{2.3} + + \versionchanged[Error is raised if any exceptions occur during copying, + rather than printing a message]{2.3} + + \versionchanged[Create intermediate directories needed to create \var{dst}, + rather than raising an error. Copy permissions and times of directories using + \function{copystat()}]{2.5} + \end{funcdesc} \begin{funcdesc}{rmtree}{path\optional{, ignore_errors\optional{, onerror}}} diff --git a/Lib/shutil.py b/Lib/shutil.py index 5bc4377..d6e7d18 100644 --- a/Lib/shutil.py +++ b/Lib/shutil.py @@ -108,7 +108,8 @@ def copytree(src, dst, symlinks=False): """ names = os.listdir(src) - os.mkdir(dst) + os.makedirs(dst) + copystat(src, dst) errors = [] for name in names: srcname = os.path.join(src, name) |