在深度学习中,我们常常需要生成一个list.txt来存放原始数据和标注后的数据的路径。
我的代码如下:主要涉及到循环方法、路径字符串的生成、文件读写等操作,有python基础同学应该一看就能看懂,可以在此代码基础上修改获得自己想要的功能,记得更改成你自己的路径名称哦。
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Wed Aug 29 12:50:05 2018
@author: youxinlin
"""
import os
#返回原始图像路径名称
def img_file_name(file_dir):
L=''
for root, dirs, files in os.walk(file_dir):
for file in files:
if file == 'img.png':
L = os.path.join(root, file)
# print(L)
# file_name = file[0:-4] #去掉.png后缀
# L.append(file_name)
# L.append(' '+'this is anohter file\'s name')
return L
#返回标注图像路径名称
def label_file_name(file_dir):
L=''
for root, dirs, files in os.walk(file_dir):
for file in files:
if file == 'label.png':
L = os.path.join(root, file)
# file_name = file[0:-4] #去掉.png后缀
# L.append(file_name)
# L.append(' '+'this is anohter file\'s name')
return L
imgdir = '/Users/youxinlin/Desktop/imgdata/river_2'
list_txt_file = '/Users/youxinlin/Desktop/imgdata/river_2/train_list.txt'
docs = os.listdir(imgdir) #找出文件夹下所有的文件
for name in docs:
if name.endswith("_json"): #找到每个_json结尾的文件夹
print(name)
label_folder = imgdir+'/'+name
txt_name = img_file_name(label_folder)+' '+label_file_name(label_folder)
# print(txt_name)
with open(list_txt_file, 'a') as f:
f.write(txt_name+'\n')
f.close()
生成的train_list.txt结果: