处理(移出或删除)文件夹中.bmp和.json文件(文件类型可替换)一 一对应的数据之外的数据

        在整理数据时,我的.bmp图片和.json文件需要一一对应用来研究,但是文件夹中有的图片丢失了有的文件丢失了,这些不对应的数据无法进行研究,我们需要找到并进行处理。在面对上万数据时我们人为是很难找出来的,所以我们可以用以下方法对废弃数据进行移出或者删除。

        一一对应:我的json文件是根据bmp图片生成的,他们的文件名是一样的。

方法一:移出

1.移出多余数据至新文件夹

文件夹路径:F:\代码测试\文件夹一

目标文件夹路径:F:\代码测试\多余数据文件夹

 

 2.代码实现
import os
import shutil

def check_and_move_mismatched_files(root_folder, output_folder):
    bmp_files = set()
    json_files = set()
    if not os.path.exists(output_folder):
        os.makedirs(output_folder)
    # 首先将文件名保存到集合中
    for root, dirs, files in os.walk(root_folder):
        for file in files:
            filename, file_extension = os.path.splitext(file)
            if file_extension == '.bmp':
                bmp_files.add(filename)
            elif file_extension == '.json':
                json_files.add(filename)

    # 找出无法对应的文件名并输出
    mismatched_files = bmp_files.symmetric_difference(json_files)

    if mismatched_files:
        print("Mismatched files:")
        for filename in mismatched_files:
            print(filename)

        # 将无法对应的文件移动到输出文件夹中
        for filename in mismatched_files:
            bmp_filepath = os.path.join(root_folder, f"{filename}.bmp")
            json_filepath = os.path.join(root_folder, f"{filename}.json")
            if os.path.exists(bmp_filepath):
                shutil.move(bmp_filepath, os.path.join(output_folder, f"{filename}.bmp"))
                print(f"Moved: {bmp_filepath} to {output_folder}")
            if os.path.exists(json_filepath):
                shutil.move(json_filepath, os.path.join(output_folder, f"{filename}.json"))
                print(f"Moved: {json_filepath} to {output_folder}")
    else:
        print("All files are matched.")

# 设置根文件夹路径和输出文件夹路径
root_folder = 'F:\代码测试\文件夹一'       # 替换为您的根文件夹路径
output_folder = 'F:\代码测试\多余数据文件夹'   # 替换为您的输出文件夹路径

# 调用检查并移动函数
check_and_move_mismatched_files(root_folder, output_folder)
3.运行结果

我们可以看到源文件夹中.bmp图片和.json文件一一对应用,而目标文件夹中是移出的多余数据

 

 

 

方法二:删除

1.删除多余数据

文件夹路径:F:\代码测试\文件夹一

 2.代码实现
import os

def check_and_delete_mismatched_files(root_folder):
    bmp_files = set()
    json_files = set()

    # 首先将文件名保存到集合中
    for root, dirs, files in os.walk(root_folder):
        for file in files:
            filename, file_extension = os.path.splitext(file)
            if file_extension == '.bmp':
                bmp_files.add(filename)
            elif file_extension == '.json':
                json_files.add(filename)

    # 找出无法对应的文件名并输出
    mismatched_files = bmp_files.symmetric_difference(json_files)

    if mismatched_files:
        print("Mismatched files:")
        for filename in mismatched_files:
            print(filename)

        # 删除无法对应的文件
        for filename in mismatched_files:
            bmp_filepath = os.path.join(root_folder, f"{filename}.bmp")
            json_filepath = os.path.join(root_folder, f"{filename}.json")
            if os.path.exists(bmp_filepath):
                os.remove(bmp_filepath)
                print(f"Deleted: {bmp_filepath}")
            if os.path.exists(json_filepath):
                os.remove(json_filepath)
                print(f"Deleted: {json_filepath}")
    else:
        print("All files are matched.")

# 设置根文件夹路径
root_folder = 'F:\代码测试\文件夹一'  # 替换为您的根文件夹路径

# 调用检查并删除函数
check_and_delete_mismatched_files(root_folder)
3.运行结果

通过代码我们可以直接将多余数据删除掉

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值