Skip to main content

shutil

High-level operations on files and directories: copying, moving, removing trees, packing / unpacking archives, querying disk usage.

Source-of-record: Lib/shutil.py, shutil docs.

Copying

FunctionEffect
copyfileobj(fsrc, fdst, length=COPY_BUFSIZE)Stream copy.
copyfile(src, dst, *, follow_symlinks=True)Just the data; no metadata.
copymode(src, dst, *, follow_symlinks=True)Permissions only.
copystat(src, dst, *, follow_symlinks=True)Permissions + times + flags.
copy(src, dst, *, follow_symlinks=True)copyfile + copymode.
copy2(src, dst, *, follow_symlinks=True)copyfile + copystat.
copytree(src, dst, symlinks=False, ignore=None, copy_function=copy2, ignore_dangling_symlinks=False, dirs_exist_ok=False)Recursive copy.
ignore_patterns(*patterns)Factory for the ignore callback.

Moving and removing

FunctionEffect
move(src, dst, copy_function=copy2)Rename or copy + remove.
rmtree(path, ignore_errors=False, onerror=None, *, onexc=None, dir_fd=None)Recursive remove.
disk_usage(path)(total, used, free).
chown(path, user=None, group=None, *, dir_fd=None, follow_symlinks=True)POSIX chown.
`which(cmd, mode=os.F_OKos.X_OK, path=None)`
get_terminal_size(fallback=(80, 24))(columns, lines).

Archives

FunctionEffect
make_archive(base_name, format, root_dir=None, base_dir=None, verbose=0, dry_run=0, owner=None, group=None, logger=None)Pack.
unpack_archive(filename, extract_dir=None, format=None, *, filter=None) (filter 3.12+)Unpack.
get_archive_formats() / get_unpack_formats()Available formats.
register_archive_format(name, function, extra_args=None, description='')Register packer.
unregister_archive_format(name) / register_unpack_format(...) / unregister_unpack_format(...)Reverse.

Built-in formats: zip, tar, gztar, bztar, xztar.

Filter for extraction

tarfile.data_filter, tarfile.tar_filter, tarfile.fully_trusted_filter. 3.14 raises DeprecationWarning when no filter is set.

Gopy status

AreaState
Copying and movingComplete.
rmtree, disk_usage, which, terminal sizeComplete.
Archive packing / unpackingComplete for zip, tar, gztar, bztar, xztar.
Extraction filtersComplete.

Reference

  • CPython 3.14: shutil.
  • Lib/shutil.py.
  • module/shutil/. gopy port.