无视后缀对比两个文件夹下文件名是否对应---相互检查有不一样的自动删除(深度学习,XML标签原图是否对应检查)

 #其他文件类型也可用,修改后面name1+'.xml'和 name2+'.jpg' 为自己需要的格式就好

# 无视后缀(文件格式)对比两个文件下所有文件名(不针对文件内容)是否相同,不同则删除多余的,


import os

path1 ='/home/em/test/脚本/test_data/bb'#xml所在路径
names1 = os.listdir(path1)  


path2 ='/home/em/test/脚本/test_data/aa'#jpg所在路径
names2 = os.listdir(path2)  

i=0  #用于统计文件数量是否正确,不会写到文件里
b=0
for name1 in names1:
    index1 = name1.rfind('.')
    name1 = name1[:index1]
    for name2 in names2:
        a=len(names2)
        #print(a)
        b +=1
        index2 = name2.rfind('.')
        name2 = name2[:index2]
        if name1 == name2 :
            name2=0
            b = 0
            break
        else:
            #print("esle")
            #print(b)
            if b == a:

                #t(name1)
                a=name1+'.xml' #这个只是为了我方便检查是否这个文件是多余,可以不用管
                print(a)
                xml_path=os.path.join(path1,'%s.xml'%name1)
                os.remove(xml_path)
                b=0
                i=i+1#多余的文件数目
            else:
                continue
#print(b)#总的文件数目
print(i)
c=0
j=0
for name2 in names2:
    index2 = name2.rfind('.')
    name2 = name2[:index2]
    for name1 in names1:
        d=len(names1)
        #print(a)
        c +=1
        index1 = name1.rfind('.')
        name1 = name1[:index1]
        if name1 == name2 :
            name1=0
            c = 0
            break
        else:
            #print("esle")
            #print(b)
            if c == d:

                #t(name1)
                a=name2+'.jpg' #这个只是为了我方便检查是否这个文件是多余,可以不用管
                print(a)
                jpg_path=os.path.join(path2,'%s.jpg'%name2)
                os.remove(jpg_path)
                c=0
                j=j+1#多余的文件数目
            else:
                continue
#print(c)#总的文件数目
print(j)
#("destination_path\\%s.jpg"%bbox[0]):

 

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用 Python 的 os 模块,先将两个文件夹中的文件名列表分别存储到两个列表中,然后进行比较。可以使用字符串的 endswith() 方法来判断文件名是否以某个后缀结尾,如果不是,则说明文件名对应,可以将其自动删除。 举个例子,可以参考以下代码实现: ``` import os folder1 = '/path/to/folder1' folder2 = '/path/to/folder2' # 获取两个文件夹中所有文件的文件名列表 folder1_filenames = os.listdir(folder1) folder2_filenames = os.listdir(folder2) # 遍历文件名列表,判断是否对应,如果不对应删除 for filename1 in folder1_filenames: if not filename1.endswith('.jpg'): # 以 .jpg 为例,可以根据实际情况修改后缀 continue # 如果文件名不是以 .jpg 结尾,则跳过该文件名检查 if filename1 not in folder2_filenames: os.remove(os.path.join(folder1, filename1)) print(f'{filename1} in {folder1} is removed because it does not exist in {folder2}.') for filename2 in folder2_filenames: if not filename2.endswith('.jpg'): # 以 .jpg 为例,可以根据实际情况修改后缀 continue # 如果文件名不是以 .jpg 结尾,则跳过该文件名检查 if filename2 not in folder1_filenames: os.remove(os.path.join(folder2, filename2)) print(f'{filename2} in {folder2} is removed because it does not exist in {folder1}.') ``` 注意:代码中的路径需要根据实际情况进行修改。另外,该代码无法处理子文件夹内的文件名对应关系,如果需要处理子文件夹内的文件,可以使用递归函数来实现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值