shutil 是 Python 中的一个高级文件操作库,它提供了许多对文件和文件集合的高级操作,这些操作在 os 模块中通常是以较低级别的函数形式提供的。shutil 库的主要功能包括复制、移动、删除文件和目录,以及文件和目录的归档等。
以下是 shutil 库中一些常用函数的详解:
1. 复制文件和目录
shutil.copy(src, dst, *, follow_symlinks=True):复制文件从 src 到 dst。如果 dst 是一个目录,那么文件将被复制到该目录下,并使用相同的文件名。
shutil.copy2(src, dst, *, follow_symlinks=True):与 copy() 类似,但会尝试复制文件的元数据(如时间戳和权限)。
shutil.copyfile(src, dst, *, follow_symlinks=True):只复制文件内容,不尝试复制元数据。
shutil.copyfileobj(fsrc, fdst, length=16*1024):将一个文件对象的内容复制到另一个文件对象。
shutil.copytree(src, dst, symlinks=False, ignore=None, copy_function=copy2, ignore_dangling_symlinks=False):递归地复制目录树。
2. 移动和重命名文件和目录
shutil.move(src, dst, copy_function=copy2):将文件或目录从 src 移动到 dst。如果 dst 已经存在并且是一个目录,那么 src 将被移动到该目录下。
3. 删除文件和目录
shutil.rmtree(path, ignore_errors=False, onerror=None):递归地删除目录及其内容。
shutil.remove(path, *, dir_fd=None):删除文件或目录(如果它是一个空目录)。
4. 归档和解压文件
shutil.make_archive(base_name, format, root_dir=None, base_dir=None, verbose=0, dry_run=0, owner=None, group=None, logger=None):创建归档文件(如 zip、tar 等)。
shutil.unpack_archive(filename, extract_dir=None, format=None):解压归档文件到指定目录。
5. 其他
shutil.disk_usage(path):返回包含磁盘使用统计信息的命名元组,该统计信息包括总块数、已用块数和可用块数。
shutil.get_terminal_size(fallback=(80, 24)):获取终端窗口的大小(以列和行表示)。
shutil.which(cmd, path=None, pathext=None):在 PATH 环境变量中搜索指定的命令,并返回其完整路径。
示例
复制文件
python复制代码 import shutil shutil.copy('source.txt', 'destination.txt')
删除目录及其内容
python复制代码 shutil.rmtree('/path/to/directory')
创建 zip 归档
python复制代码 shutil.make_archive('backup', 'zip', '/path/to/directory')
在使用 shutil 时,请确保你有足够的权限来执行相应的文件操作,并始终注意不要意外地删除或覆盖重要文件。