shutil 是 Python 标准库中的一个模块,主要用于文件和目录的高阶操作。
以下是 shutil 模块的一些常见功能:
- 复制文件和目录:
- shutil.copy(src, dst): 复制文件内容和权限。dst 可以是文件路径或目录路径。如果是目录路径,文件将被复制到该目录下,保留原文件名。
- shutil.copy2(src, dst):类似于 shutil.copy,但会复制文件的所有元数据(如创建时间、修改时间等)。适用于需要保留文件完整属性的场景。
- shutil.copyfile(src, dst):仅复制文件内容,不复制权限和元数据。
总结来说,shutil.copy 和 shutil.copy2 更灵活,可以处理文件和目录路径,而 shutil.copy2 还会保留更多的文件属性。shutil.copyfile 则更基础,只处理文件内容的复制 - shutil.copytree(src, dst): 递归地复制目录。src 和 dst 都必须是文件路径,不能是目录路径。
- shutil.copystat:用于复制文件得状态信息。具体来说,它会复制以下属性:
- 权限位
- 最后访问时间
- 最后修改时间
- 标志值
需要注意的是,shutil.copystat 不会复制文件的内容、所有者和组信息。
- shutil.copymode:用于将文件的权限位从源文件复制到目标文件,而不影响文件的内容、所有者和组信息。
- 移动文件和目录:
- shutil.move(src, dst): 移动文件或目录,从 src 到 dst。
- 删除文件和目录:
- shutil.rmtree(path): 递归地删除目录树,从 path 开始。
- 创建和解压缩文件:
- shutil.make_archive(base_name, format, root_dir): 创建压缩文件。
- shutil.unpack_archive(filename, extract_dir): 解压缩文件。
import shutil
tmp = shutil.make_archive(r"e:\test1",'tar',r"D:\tmp")
print(tmp) # e:\test1.tar
shutil.unpack_archive(r'e:\test1.tar',r'D:\temp')
支持的压缩格式有:zip, tar, gztar, bztar, xztar