使用shutil模块实现Python中的目录操作

2023-03-25 00:00:00 操作 目录 模块

shutil 模块不仅可以用于单个文件的复制、移动和删除,还可以用于整个目录的操作。下面介绍一些常见的目录操作,包括创建目录、删除目录、复制目录和移动目录。

创建目录
使用 shutil 模块中的 os.makedirs 函数可以创建目录及其子目录。例如,创建名为 pidancode 的目录:

import os

os.makedirs('pidancode')

该函数会递归地创建目录及其子目录。如果目录已存在,则不做任何操作。

删除目录
使用 shutil 模块中的 os.rmdir 函数可以删除空目录。例如,删除名为 pidancode 的空目录:

import os

os.rmdir('pidancode')

如果要删除非空目录及其子目录,可以使用 shutil 模块中的 shutil.rmtree 函数。例如,删除名为 pidancode 的目录及其子目录:

import shutil

shutil.rmtree('pidancode')

该函数会递归地删除目录及其子目录中的所有文件和目录。

复制目录
使用 shutil 模块中的 shutil.copytree 函数可以复制整个目录及其子目录。例如,将名为 pidancode 的目录及其子目录复制到名为 pidancode_copy 的目录:

import shutil

shutil.copytree('pidancode', 'pidancode_copy')

如果目标目录已存在,则会抛出 FileExistsError 异常。

如果只想复制目录中的文件而不包括子目录,可以使用 shutil 模块中的 shutil.copy 函数。例如,将名为 pidancode 目录下的 pidancode.txt 文件复制到名为 pidancode_copy 目录下:

import shutil

shutil.copy('pidancode/pidancode.txt', 'pidancode_copy/pidancode.txt')

移动目录
使用 shutil 模块中的 shutil.move 函数可以移动整个目录及其子目录。例如,将名为 pidancode 的目录移动到名为 pidancode_move 的目录下:

import shutil

shutil.move('pidancode', 'pidancode_move')

如果目标目录已存在,则会将源目录及其子目录移动到目标目录下。

以上就是使用 shutil 模块进行目录操作的范例。需要注意的是,在进行目录操作时,要确保操作的目录存在并且有合适的访问权限。

相关文章