Python 3.x 中如何使用shutil模块进行文件和目录操作

1. 简介

Python中的shutil模块提供了一系列对文件和目录进行操作的函数,可以方便地实现文件的复制、移动、删除等操作,同时还能够创建、遍历和操作目录。shutil模块是Python标准库的一部分,无需额外安装即可使用。

2. 文件操作

2.1 复制文件

复制文件是常见的文件操作,shutil提供了copy()和copy2()函数来实现。

copy(src, dst)函数将src复制到dst,dst可以是目录或者文件名,src和dst都可以是字符串或者文件描述符。

import shutil

shutil.copy('source.txt', 'destination.txt')

如果dst已经存在,则会被覆盖。

copy2(src, dst)函数与copy()相同,但会尽可能地保留原文件的属性信息,包括所有者、组、权限等。

import shutil

shutil.copy2('source.txt', 'destination.txt')

2.2 移动文件

移动文件可以使用move()函数来实现。

move(src, dst)函数将src移动到dst,同样可以是文件名或目录。如果dst已经存在,则会被覆盖。

import shutil

shutil.move('source.txt', 'destination.txt')

2.3 删除文件

删除文件可以使用os模块中的remove()函数,也可以使用shutil模块的remove()函数。

remove(path)函数将文件path删除。

import os

os.remove('filename.txt')

shutil模块中也提供了remove()函数,和os模块中的相同。

import shutil

shutil.remove('filename.txt')

3. 目录操作

3.1 创建目录

创建目录可以使用mkdir()函数来实现。

mkdir(path)函数创建一个目录,path可以是一个字符串或者一个元组,如果path已经存在,则会抛出FileExistsError异常。

import os

os.mkdir('newdir')

3.2 删除目录

删除目录可以使用rmdir()函数。

rmdir(path)函数删除指定的目录,如果目录不存在或不为空,则会抛出OSError异常。

import os

os.rmdir('dir')

3.3 复制目录

复制目录可以使用shutil模块的copytree()函数,该函数会递归地复制目录和文件。

copytree(src, dst)函数将src目录递归地复制到dst中,dst必须不存在,否则会抛出FileExistsError异常。

import shutil

shutil.copytree('source_dir', 'destination_dir')

3.4 移动目录

移动目录可以使用shutil模块的move()函数。

move(src, dst)函数将src移动到dst,如果dst已经存在,则会被覆盖。

import shutil

shutil.move('source_dir', 'destination_dir')

3.5 删除目录树

删除目录树可以使用shutil模块的rmtree()函数。

rmtree(path)函数递归地删除指定的目录树,如果path不存在,则会抛出OSError异常。

import shutil

shutil.rmtree('dir')

4. 总结

Python的shutil模块提供了一系列实用的函数,可以方便地对文件和目录进行操作,包括文件的复制、移动、删除等以及目录的创建、删除、遍历等。通过本文的介绍,希望读者能够掌握shutil模块的基本用法。

后端开发标签