引言

在日常的编程工作中,我们常常需要处理文件和目录的操作,例如复制、移动、重命名等。而Python中的shutil模块则是处理这些任务的魔法工具。通过shutil模块,我们能够以简单而高效的方式操控文件和目录,为我们的编程工作带来便利和效率的提升。

Shutil模块的功能

shutil模块是Python中一个强大的标准库,提供了丰富的功能,包括但不限于:

  • 复制文件和目录
  • 移动文件和目录
  • 重命名文件和目录
  • 删除文件和目录
  • 创建目录和子目录
  • 压缩和解压缩文件
  • 监控目录变化

无论是简单的文件操作,还是复杂的目录操作,shutil模块都能够帮助我们轻松应对。

文件操作示例

下面是一些使用shutil模块进行文件和目录操作的示例代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import shutil
import os

# 判断是否存在source.txt
if not os.path.isfile('source.txt'):
# 没有则创建
with open('source.txt', 'w') as f:
f.write("Hello World!!")
# 判断是否存在destination.txt
if os.path.isfile('destination.txt'):
# 存在则删除文件
os.remove('destination.txt')
# 示例1: 复制文件
shutil.copy('source.txt', 'destination.txt')

# 判断是否存在source_folder
if not os.path.isdir('./source_folder'):
os.mkdir('source_folder')
# 判断是否存在destination_folder
if os.path.isdir('./destination_folder'):
# 级联删除文件夹
shutil.rmtree('./destination_folder')
# 示例2: 复制目录
shutil.copytree('source_folder', 'destination_folder')

# 示例3: 移动文件
shutil.move('source.txt', './destination_folder/destination.txt')

# 示例4: 重命名文件
shutil.move('destination.txt', 'destination_bk.txt')

# 示例5: 压缩文件
shutil.make_archive('archive', 'zip', './destination_folder')

if os.path.isdir('./destination_folder1'):
shutil.rmtree('./destination_folder1')
# 示例8: 解压缩文件
shutil.unpack_archive('archive.zip', 'destination_folder1')

通过以上示例,我们可以看到shutil模块提供的简洁而强大的接口,能够轻松实现文件和目录的复制、移动、重命名、删除、创建、压缩、解压缩等操作。

参考资料: