跳到主要内容

📦 Python 标准库 - shutil 模块(文件与目录高级操作)

📌 模块用途简介

shutil(shell utilities)用于对文件、文件夹进行复制、移动、删除、压缩等操作,是文件操作中非常重要的工具库。

常见功能包括:

  • 拷贝文件和目录
  • 移动或重命名文件
  • 删除目录树
  • 压缩与解压缩

📁 1️⃣ 拷贝文件 shutil.copy(src, dst)

复制文件到新位置,保留原文件名。

shutil.复制("源.txt", "备份.txt")

📌 copy() 不会保留文件权限等元信息。


📂 2️⃣ 复制文件和权限 shutil.copy2(src, dst)

copy() 类似,但保留文件的元数据(如时间戳)。

shutil.复制2("原.txt", "完整复制.txt")

📚 3️⃣ 拷贝整个目录 shutil.copytree(src, dst)

递归复制整个目录及其内容(注意:目标目录不能存在)。

shutil.复制树("模板目录", "新项目")

🚚 4️⃣ 移动或重命名 shutil.move(src, dst)

可以移动文件或整个目录,也可用于重命名。

shutil.移动("文件A.txt", "归档/文件A.txt")

🗑️ 5️⃣ 删除目录树 shutil.rmtree(path)

彻底删除整个目录及其所有子文件和子目录(慎用)。

shutil.rmtree("临时目录")

📦 6️⃣ 压缩文件 shutil.make_archive()

创建压缩包(支持 zip、tar 等格式)。

shutil.make_archive("备份", "zip", "源目录")

生成的结果为:备份.zip


📃 7️⃣ 解压文件 shutil.unpack_archive()

自动解压 .zip, .tar, .gztar 等压缩包到目标文件夹。

shutil.unpack_archive("备份.zip", "还原目录")

✅ 小结表

功能方法名说明
复制文件copy(src, dst)普通文件复制
复制含元信息copy2(src, dst)带时间等元信息的复制
复制目录copytree(src, dst)递归复制目录
移动/重命名move(src, dst)移动文件或文件夹
删除目录rmtree(path)彻底删除文件夹(包括内容)
打包压缩make_archive()将目录打包成 zip 等格式
解包unpack_archive()解压文件到指定位置