使用Python脚本,递归删除指定目录下的空文件夹、指定名称的文件夹及指定后缀的文件。
递归删除空文件夹
import os
import glob
import sys
def remove_empty_folders(directory):
# 遍历指定目录下的所有文件和子目录
for filename in glob.glob(f'{directory}/**', recursive=True):
# 检查是否是文件夹
if os.path.isdir(filename):
# 如果是空的文件夹,就删除它
if not os.listdir(filename):
os.rmdir(filename)
print(f'删除空文件夹: {filename}')
# 设置递归调用深度,默认为1000
sys.setrecursionlimit(10**5)
# 使用方法,更换为自己的目录
remove_empty_folders('G:\\123\\')
递归删除指定名称的文件夹
import os
import shutil
import sys
def remove_folders_with_name(parent_folder, target_folder_name):
for folder_name in os.listdir(parent_folder):
folder_path = os.path.join(parent_folder, folder_name)
if os.path.isdir(folder_path):
if folder_name == target_folder_name:
shutil.rmtree(folder_path)
print(f"文件夹 {folder_path} 已成功删除。")
else:
remove_folders_with_name(folder_path, target_folder_name)
# 设置递归调用深度,默认为1000
sys.setrecursionlimit(10**5)
# 更换为自己的目录
parent_folder_path = 'G:\\123'
target_folder_name = input("请输入要删除的文件夹名称:")
remove_folders_with_name(parent_folder_path, target_folder_name)
递归删除指定后缀的文件
import os
import glob
import sys
def remove_files_with_extension(directory, extension):
# 遍历指定目录下的所有文件和子目录
for filename in glob.glob(f'{directory}/**/*', recursive=True):
# 检查文件是否是指定后缀
if filename.endswith(extension):
# 如果是,就删除它
os.remove(filename)
print(f'删除文件: {filename}')
# 设置递归调用深度,默认为1000
sys.setrecursionlimit(10**5)
extension_name = input("请输入要删除的文件后缀:")
# 更换为自己的目录
remove_files_with_extension('G:\\123', extension_name)