📜  shutil 递归删除目录 (1)

📅  最后修改于: 2023-12-03 14:47:27.222000             🧑  作者: Mango

shutil 递归删除目录

shutil 模块是 Python 自带的一个文件操作模块,它提供了一些常见的文件和目录操作函数。

在使用 shutil 模块时,如果要删除一个目录及其所有子目录和文件,可以使用 shutil.rmtree 函数。该函数会递归地删除指定的目录及其所有内容。

用法示例
import shutil

shutil.rmtree('/path/to/directory')

代码中的 /path/to/directory 是要删除的目录路径,该目录及其所有子目录和文件都将被删除。

在使用 shutil.rmtree 函数时,需要注意以下几点:

  • 要删除的目录必须存在,否则会引发错误;
  • 如果目录是只读的,那么也无法删除,需要先移除只读属性;
  • 删除操作是不可撤销的,因此必须小心使用,确认没有误操作。
异常处理

在使用 shutil.rmtree 函数时,有时可能会因为权限不足、文件被占用等原因导致删除失败,此时会抛出 OSError 异常。为了保证程序的健壮性,我们需要在代码中对异常进行处理。

以下代码展示了如何捕获 OSError 异常并给出相应的提示信息:

import shutil

try:
    shutil.rmtree('/path/to/directory')
except OSError as e:
    print(f'Error: {e.filename} - {e.strerror}.')

以上代码在捕捉到 OSError 异常后,会打印出相应的错误信息。

总结

shutil 模块提供了很多文件和目录操作函数,其中 shutil.rmtree 函数可以递归地删除指定目录及其所有内容。在使用该函数时,需要注意异常处理和删除操作的谨慎使用。