[issue8125] shutil.copytree behavior is inconsistent with copyfile
joseph.h.garvin
report at bugs.python.org
Sat Mar 13 00:42:37 CET 2010
joseph.h.garvin <joseph.h.garvin at gmail.com> added the comment:
Sorry I wasn't terribly clear explaining the problem with mkdtemp. Say you create your temporary folder, /tmp/foo. Now you have a regular folder bar laid out like so:
bar/
blarg1.ext
blarg2.ext
subdir/
blarg3.ext
blarg4.ext
I'd like this to be the result of copying:
/tmp
/foo
blarg1.ext
blarg2.ext
subdir/
blarg3.ext
blarg4.ext
Basically, I'd like to copy bar/ to /tmp/foo such that the paths of the files relative to bar/ are the same as the paths of the copied files relative to /tmp/foo. AFAICT there's no easy way to do this with copytree's current behavior. Because tempfile.mkdtemp() creates /tmp/foo to start, you can't use copytree to do this.
But now I realize copy tree wants to copy the source directory as a directory, so you always get /tmp/foo/bar. What I wanted was copy(recursive_glob(src, "*"), dst). That would give you the effect you normally get from a utility like 'cp'.
> It doesn't mean the semantics have to be exactly the same. Actually, many Python users are under Windows where semantics will be different.
I believe 'copy' has the same cp-like semantics I desire under Windows, but it's been quite some time since I used it.
So, not a bug, but sticks out to me as missing. Might make sense someday to have a keyword arg to copytree that would make it behave this way.
----------
_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue8125>
_______________________________________
More information about the Python-bugs-list
mailing list