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
模块提供的相关函数,我们可以轻松地实现这个功能。现在,你可以将这个方法分享给其他人,帮助更多的开发者解决类似的问题。