在日常的软件开发和数据处理中,经常需要处理大量的文件和数据。针对一些分类的模型结果,这个脚本可以帮助快速找到文件夹中匹配和不匹配的图片文件。
import os
def 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结尾的图片文件集合。
使用集合操作找到匹配和不匹配的图片文件。
输出匹配的图片文件名和不匹配的图片数量及文件名。