python基础之标准库基于shutil高阶文件操作模块介绍相关1

81 阅读1分钟

shutil 是 Python 标准库中的一个模块,提供了许多对文件和文件集合进行高级操作的功能。它特别适用于文件复制、移动、改名和删除等操作。以下是 shutil 模块的一些主要功能:

  1. 复制文件和目录:

    • shutil.copyfile(src, dst): 仅复制内容,srcdst 是文件路径。
    • shutil.copy(src, dst): 复制文件到另一个文件或目录,同时复制元数据(如权限)。
    • shutil.copy2(src, dst): 类似于 copy(),但同时复制文件的最后访问时间和最后修改时间。
    • shutil.copytree(src, dst): 递归地复制一个目录及其所有内容。
  2. 移动文件和目录:

    • shutil.move(src, dst): 递归地移动文件或目录(src)到另一个位置(dst)。
  3. 删除文件和目录:

    • 虽然 shutil 主要用于复制和移动文件,但删除操作通常使用 os 模块,如 os.remove() 删除单个文件,os.rmdir() 删除空目录,shutil.rmtree() 删除整个目录树。
  4. 文件归档和解压:

    • shutil.make_archive(base_name, format, root_dir): 创建归档文件(如 zip 或 tar)。
    • shutil.unpack_archive(filename, extract_dir, format): 解压归档文件。
  5. 查询磁盘使用情况:

    • shutil.disk_usage(path): 返回一个命名元组,表示指定路径的磁盘使用情况(总空间、已用空间和可用空间)。
  6. 高级文件操作:

    • 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 中进行文件和目录操作时的有力工具,特别是在需要进行复杂文件操作的脚本和程序中。