|  |  | copy2(src, dst, overwrite=False, symlinks=False)Copy data and all stat info ("cp -p src dst").
 The destination may be a directory.
 copyfile(src, dst)Copy data from src to dst
 copyfileobj(fsrc, fdst, length=16384)copy data from file-like object fsrc to file-like object fdst
 copystat(src, dst)Copy all stat info (mode bits, atime, mtime, flags) from src to dst
 copytree(src, dst, symlinks=False, ignore=None, overwrite=False)Recursively copy a directory tree using copy2().
 The destination directory must not already exist.
 If exception(s) occur, an Error is raised with a list of reasons.
 
 If the optional symlinks flag is true, symbolic links in the
 source tree result in symbolic links in the destination tree; if
 it is false, the contents of the files pointed to by symbolic
 links are copied.
 
 The optional ignore argument is a callable. If given, it
 is called with the `src` parameter, which is the directory
 being visited by copytree(), and `names` which is the list of
 `src` contents, as returned by os.listdir():
 
 callable(src, names) -> ignored_names
 
 Since copytree() is called recursively, the callable will be
 called once for each directory that is copied. It returns a
 list of names relative to the `src` directory that should
 not be copied.
 
 XXX Consider this example code rather than the ultimate tool.
 move(src, dst, overwrite=False)Recursively move a file or directory to another location. This issimilar to the Unix "mv" command.
 
 If the destination is a directory or a symlink to a directory, the source
 is moved inside the directory. The destination path must not already
 exist.
 
 If the destination already exists but is not a directory, it may be
 overwritten depending on os.rename() semantics.
 
 If the destination is on our current filesystem, then rename() is used.
 Otherwise, src is copied to the destination and then removed.
 A lot more could be done here...  A look at a mv.c shows a lot of
 the issues this implementation glosses over.
 rmtree(path, ignore_errors=False, onerror=None)Recursively delete a directory tree.
 If ignore_errors is set, errors are ignored; otherwise, if onerror
 is set, it is called to handle the error with arguments (func,
 path, exc_info) where func is os.listdir, os.remove, or os.rmdir;
 path is the argument to that function that caused it to fail; and
 exc_info is a tuple returned by sys.exc_info().  If ignore_errors
 is false and onerror is None, an exception is raised.
 |