一、脚本简介
在日常的软件开发和数据处理中,经常需要处理大量的文件和数据。针对一些分类的模型结果,这个脚本可以帮助快速找到文件夹中匹配和不匹配的图片文件。
二、完整代码
import osdef find_mismatched_images(folder1, folder2, subfolder):# 获取指定子文件夹中的图片文件列表folder1_path = os.path.join(folder1, subfolder)folder2_path = os.path.join(folder2, subfolder)images1 = set(f for f in os.listdir(folder1_path) if f.lower().endswith('.jpg'))images2 = set(f for f in os.listdir(folder2_path) if f.lower().endswith('.jpg'))# 找到匹配和不匹配的图片matched_images = images1.intersection(images2)mismatched_images = images1.symmetric_difference(images2)# 输出匹配的图片文件名if matched_images:print(f"匹配的图片文件名:")for image in matched_images:print(f"- {image} 匹配 {image}")# 输出不匹配的图片数量和文件名mismatched_count = len(mismatched_images)print(f"在文件夹 {subfolder} 中不匹配的图片数量: {mismatched_count}")if mismatched_images:print(f"不匹配的图片文件名:")for image in mismatched_images:print(f"- {image}")# 指定文件夹路径
test_data_folder = r'O:\project\泰和长丝\训练数据\20240122\test_data'
show_dir_folder = r'O:\project\泰和长丝\训练数据\20240122\show_dir'
subfolder_name = 'xuanzhuan' # 替换为具体的子文件夹名称# 执行检查
find_mismatched_images(test_data_folder, show_dir_folder, subfolder_name)
函数参数
folder1: 第一个文件夹的路径
folder2: 第二个文件夹的路径
subfolder: 指定的子文件夹名称
函数内部逻辑
使用os.path.join拼接路径,获取指定子文件夹中的图片文件列表。
利用列表推导式和set函数,获取每个文件夹中以.jpg结尾的图片文件集合。
使用集合操作找到匹配和不匹配的图片文件。
输出匹配的图片文件名和不匹配的图片数量及文件名。