-
情况说明:当在一个文件夹下面有好几十个或几百个文件需要删除,此时一一去挑选费时费力,特别是在Linux下面。因此,需要批量删除文件。
对训练样本(图像)和测试样本(图像)进行评估时候,需要查看是数据本身问题还是自己模型的问题,因此需要将错误分类的样本(图像)挑选出来,看到底是标注本身问题,还是说模型没有训练好。当是样本本身问题,需要将错误样本删除。
在3W多个训练样本中,查询到400多个是错误标注的数据,需要在数据集中删除。
将要删除的文件路径放入txt,用Python的os读取文件,存入txt。然后在用os.remove()删除读出来的路径所指文件。
由于我在Windows下面查看样本方便点,所以在Windows下面把文件相对路径写入txt,这里是第1段代码。
然后在Linux服务器上,去执行批量删除文件的代码,这是第2段代码。(因此,复制本段代码需要注意路径问题!!!)
- 先将错误文件挑选出来,放在一个文件夹下的data_reduce.txt下面。
import os from os import listdir # 错误文件放在reduce下面。 anchor_dir='E:/WrongData/reduce/' anchor_files = [t for t in listdir(anchor_dir)] i=0 #在wrongdata文件夹下面创建一个txt,保存错误文件的名字。 with open('E:/WrongData/data_reduce.txt','w') as f: for f1 in anchor_files: path1 = anchor_dir+f1+'\n' print(path1) #设置文件对象 f.write(path1) i +=1 print(i)
- 读取data_reduce.txt中的文件路径,然后利用os.remove()删除这些文件。
import os data_dir = "E:/train/4_classes/" file_handle=open('E:/WrongData/data_reduce_4.txt',mode='r') all_line = file_handle.readlines() for line in all_line: image_path=line print(image_path) # 需要去掉路径最后的换行符号。'\n' os.remove(image_path.strip('\n')) print("remove ok!")