这段代码会遍历 parent_directory_path
下的所有子文件夹,并在每个子文件夹中删除指定数量 num_to_keep_per_folder
的图片。请确保 parent_directory_path
变量指向了你的父文件夹路径,并根据需要修改 num_to_keep_per_folder
。
import os
def delete_images_in_folders(parent_directory, num_to_keep_per_folder):
# 遍历父文件夹下的所有子文件夹
for folder_name in os.listdir(parent_directory):
folder_path = os.path.join(parent_directory, folder_name)
# 检查路径是否为文件夹
if os.path.isdir(folder_path):
print(f"正在处理文件夹: {folder_path}")
# 调用删除图片的函数
delete_images(folder_path, num_to_keep_per_folder)
def delete_images(directory, num_to_keep):
# 初始化计数器
count = 0
# 遍历指定目录下的所有文件和子目录
for root, dirs, files in os.walk(directory):
for file in files:
# 判断文件是否为图片文件(这里只考虑了常见的图片格式,如需扩展请修改)
if file.endswith(('.jpg', '.jpeg', '.png', '.gif')):
try:
# 构建图片文件的完整路径
file_path = os.path.join(root, file)
# 删除图片文件
os.remove(file_path)
print(f"已删除图片文件: {file_path}")
# 更新计数器
count += 1
# 如果达到指定数量则停止删除
if count >= num_to_keep:
print(f"已删除 {count} 张图片,停止删除。")
return
except Exception as e:
print(f"删除图片文件 {file_path} 时出错: {e}")
# 指定要删除图片的父文件夹路径
parent_directory_path = r"D:\ysy\chinese_medicine_datasets\cls_chinese_medicine\data"
# 指定要保留的图片数量(每个子文件夹)
num_to_keep_per_folder = 1400
# 调用函数删除图片
delete_images_in_folders(parent_directory_path, num_to_keep_per_folder)
实际应用中,只需要更改下面两个位置即可使用。