📅  最后修改于: 2023-12-03 14:46:19.012000             🧑  作者: Mango
在Python中,有时候我们需要删除一个文件夹及其内部的所有文件和子文件夹。这时候,我们可以使用递归函数来实现。
import shutil
import os
def remove_dir(dir_path):
"""
递归删除文件夹及其内部文件和子文件夹
"""
for filename in os.listdir(dir_path):
file_path = os.path.join(dir_path, filename)
if os.path.isdir(file_path):
remove_dir(file_path) # 递归删除子文件夹
else:
os.remove(file_path) # 删除文件
os.rmdir(dir_path) # 删除空文件夹
首先,我们导入了shutil
和os
这两个Python标准库。os
库提供了很多与操作系统交互的函数,而shutil
则是Python的文件(夹)管理库。
在主函数remove_dir()
中,我们先用os.listdir()
函数列出指定路径下的所有文件及文件夹列表。然后我们使用os.path.join()
函数将文件夹路径和文件/文件夹名结合,得到文件/文件夹的完整路径。
接着,我们通过os.path.isdir()
函数判断该路径是否为文件夹,如果是,我们再次调用remove_dir()
函数来递归删除该文件夹。如果不是,我们就调用os.remove()
函数来删除该文件。最后,通过os.rmdir()
函数删除空文件夹。
在调用remove_dir()
函数时,我们只需要传入要删除的文件夹路径即可。如下所示:
remove_dir('/path/to/folder')
Python提供了很多方便的函数和库来操作文件和文件夹,递归删除文件夹就是其中之一。我们只需要熟悉这些函数和库,就可以轻松地处理文件和文件夹了。