本人在制作数据集用于目标检测时,要让训练集的图像文件(jpg)和标注文件(xml或json,shp等)的文件名保持一致和文件数量相等,预测结果根据挑选出来的正确结果,把相关文件的其他类型文件一并找出,处理的数据量较大,故写了几行简单的代码实现文件名相同但是类型(文件后缀)不同的文件的一并筛选出来,发现非常便利,便做个分享。
#根据挑选的jpg文件找出对应的xml、json、shp、dbf、shx文件
import os
import shutil
filepath1 = '/opt/netdisk/object_detection/project/results/case2/xml'#源文件做参考
file_list = os.listdir(filepath1)
print(file_list)
print(len(file_list))
filepath2 = '/opt/netdisk/object_detection/project/results/case2/jpg'#需要拷出的文件位置
filepath3 = '/opt/netdisk/1/object_detection/project/results/case2/jpgnew'#拷入新的文件夹
print(len(os.listdir(filepath2)))
def main():
n=0
for file in os.listdir(filepath2):
aa,bb=file.split('x')
b = aa +'jpg'
print(b)
if b in file_list:
srcfile = filepath2 +'/'+ file
dstfile = filepath3 +'/'+ file
shutil.move(srcfile,dstfile)#剪切功能
shutil.copyfile(srcfile,dstfile)#拷贝出来
n=n+1
print(n)
if __name__ == '__main__':
main()
filepath1是获得的正确结果或需要的已有数据,拿来做文件名对比
filepath2是想要将文件拷贝或截切出来的文件夹
filepath3是存放拷贝或剪切出来的文件的位置