快速找到文件夹中匹配和不匹配的图片文件

一、脚本简介

在日常的软件开发和数据处理中,经常需要处理大量的文件和数据。针对一些分类的模型结果,这个脚本可以帮助快速找到文件夹中匹配和不匹配的图片文件。

二、完整代码

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结尾的图片文件集合。
使用集合操作找到匹配和不匹配的图片文件。
输出匹配的图片文件名和不匹配的图片数量及文件名。

你可能感兴趣的:(python小问题,python)