这个问题是我在学习语义分割模型时遇到的,在这里记录一下!
val.txt存储的是验证集的文件名,需要根据这些文件名,将对应的文件提取到文件夹里。先来看一看val.txt存储的内容(每一行存储一个文件名,且不带后缀名):
废话不多说,上代码!
#导入需要使用的python包
import shutil
# 根据txt文件中存储的文件名,提取对应的文件保存到另一个文件夹
data = []
#读取存储val.txt文件
for line in open("F:/Practice/test_02/VOCdevkit/VOC2007/ImageSets/Segmentation/val.txt", "r"): # 设置文件对象并读取每一行文件
data.append(line)
#我的数据是jpg格式,如果你的数据是其他格式,则将下面代码中的jpg替换即可
for a in data:
#src是总文件夹
src = 'F:/Practice/test_02VOCdevkit/VOC2007/JPEGImages//{}.jpg'.format(a[:-1])
#dst是保存提取结果的文件夹
dst = 'F:/Practice/test_02/VOCdevkit/VOC2007/Images_val/{}.jpg'.format(a[:-1])
shutil.move(src, dst)
如果没有shutil,可以参考我的另一篇博客(博客链接),使用Anaconda安装shutil包。