Python 批量删除文件夹下的非空文件夹及文件

介绍

在Python中,可以使用os模块来实现删除文件夹及其内部的文件夹和文件。本文将提供一种方法来批量删除指定文件夹下的非空文件夹及文件。我们将使用递归函数来遍历文件夹中的所有子文件夹和文件,并使用os模块的相关函数来删除它们。

流程

下面是整个操作的流程:

步骤 描述
1 获取用户输入的文件夹路径
2 定义递归函数来遍历文件夹及其子文件夹和文件
3 在递归函数中判断当前路径是否为文件夹,并进行相应的操作
4 使用os模块的相关函数删除文件夹及其内部的文件夹和文件

代码实现

import os

def delete_folder_contents(folder_path):
    for item in os.listdir(folder_path):
        item_path = os.path.join(folder_path, item)
        if os.path.isfile(item_path):  # 判断是否为文件
            os.remove(item_path)  # 删除文件
        elif os.path.isdir(item_path):  # 判断是否为文件夹
            delete_folder_contents(item_path)  # 递归调用自身来遍历和删除子文件夹和文件
            os.rmdir(item_path)  # 删除空文件夹

# 获取用户输入的文件夹路径
folder_path = input("请输入文件夹路径:")
delete_folder_contents(folder_path)
print("删除完成")

代码说明

上述代码中,我们使用了os模块的以下函数:

  • os.listdir(folder_path):返回指定文件夹路径下的所有文件和文件夹的名称列表。
  • os.path.join(folder_path, item):将文件夹路径和文件/文件夹名称拼接为完整的路径。
  • os.path.isfile(item_path):判断给定路径是否为文件。
  • os.path.isdir(item_path):判断给定路径是否为文件夹。
  • os.remove(item_path):删除指定路径的文件。
  • os.rmdir(item_path):删除指定路径的空文件夹。

首先,我们定义了一个递归函数delete_folder_contents,该函数接受一个文件夹路径作为参数。在函数内部,我们使用os.listdir函数获取指定文件夹路径下的所有文件和文件夹的名称列表,并进行遍历。

对于每个遍历到的文件或文件夹,我们使用os.path.join函数将其拼接为完整的路径。然后,我们使用os.path.isfile函数判断当前路径是否为文件,如果是文件则使用os.remove函数删除它。如果当前路径为文件夹,则我们递归调用delete_folder_contents函数来遍历和删除其内部的文件夹和文件。最后,使用os.rmdir函数删除空文件夹。

在主程序中,我们获取用户输入的文件夹路径,并调用delete_folder_contents函数来删除该文件夹及其内部的文件夹和文件。最后,打印出"删除完成"提示。

总结

通过上述的代码和说明,你已经学会了如何使用Python批量删除文件夹下的非空文件夹及文件。通过递归函数和os模块提供的相关函数,我们可以轻松地实现这个功能。现在,你可以将这个方法分享给其他人,帮助更多的开发者解决类似的问题。