shutil 是 Python 标准库中的一个模块,提供了许多对文件和文件集合进行高级操作的功能。它特别适用于文件复制、移动、改名和删除等操作。以下是 shutil 模块的一些主要功能:
-
复制文件和目录:
shutil.copyfile(src, dst): 仅复制内容,src和dst是文件路径。shutil.copy(src, dst): 复制文件到另一个文件或目录,同时复制元数据(如权限)。shutil.copy2(src, dst): 类似于copy(),但同时复制文件的最后访问时间和最后修改时间。shutil.copytree(src, dst): 递归地复制一个目录及其所有内容。
-
移动文件和目录:
shutil.move(src, dst): 递归地移动文件或目录(src)到另一个位置(dst)。
-
删除文件和目录:
- 虽然
shutil主要用于复制和移动文件,但删除操作通常使用os模块,如os.remove()删除单个文件,os.rmdir()删除空目录,shutil.rmtree()删除整个目录树。
- 虽然
-
文件归档和解压:
shutil.make_archive(base_name, format, root_dir): 创建归档文件(如 zip 或 tar)。shutil.unpack_archive(filename, extract_dir, format): 解压归档文件。
-
查询磁盘使用情况:
shutil.disk_usage(path): 返回一个命名元组,表示指定路径的磁盘使用情况(总空间、已用空间和可用空间)。
-
高级文件操作:
shutil.chown(path, user=None, group=None): 改变文件所有者。shutil.which(cmd): 返回cmd的完整路径,如果命令不可用,则返回None。
示例代码:
import shutil
# 复制文件
shutil.copyfile('src.txt', 'dest.txt')
# 移动目录
shutil.move('/path/to/src_dir', '/path/to/dest_dir')
# 查询磁盘使用情况
total, used, free = shutil.disk_usage("/")
# 创建 zip 归档
shutil.make_archive('archive_name', 'zip', '/path/to/dir')
这些功能使得 shutil 成为在 Python 中进行文件和目录操作时的有力工具,特别是在需要进行复杂文件操作的脚本和程序中。